第35天 谈一谈你知道的前端性能优化方案有哪些?
Activity
AnsonZnl commentedon May 21, 2019
这个优化的范围挺大,但是总归可以分为服务端优化和客户端优化。
整理如下
客户端优化
服务端优化
最后
对普通的网站有一个统一的思路,就是尽量向前端优化、减少数据库操作、减少磁盘IO。向前端优化指的是,在不影响功能和体验的情况下,能在浏览器执行的不要在服务端执行,能在缓存服务器上直接返回的不要到应用服务器,程序能直接取得的结果不要到外部取得,本机内能取得的数据不要到远程取,内存能取到的不要到磁盘取,缓存中有的不要去数据库查询。
减少数据库操作指减少更新次数、缓存结果减少查询次数、将数据库执行的操作尽可能的让你的程序完成(例如join查询),减少磁盘IO指尽量不使用文件系统作为缓存、减少读写文件次数等。程序优化永远要优化慢的部分,换语言是无法“优化”的。
涉及的知识点太多,从客户端浏览器、渲染机制、缓存、 网络请求、代码压缩合并、图片格式、服务器代理、数据库的查询.....
暂时只能想到这么多,觉得自己答得并不是很好,希望有大佬回答一下这个问题。
fxxqq commentedon May 21, 2019
splitchunk 代码拆分,不经常改的ui库和框架可以设置缓存。
myprelude commentedon May 23, 2019
缓存
http缓存 设置好cache-control expires Last-modified;
前端缓存 对于一些页面今天配置直接存储到localStorage中;对于长期不发生改变的代码可以直接通过server-work存储到本地;
优化加载
webpack 开启 tree-shaking 减少代码体积
通过preload prefetch优化加载资源的时间
import('').then()异步加载资源
图片小于30k的图片直接做成base64;
对于首屏的样式可以直接内嵌到html中;
服务端渲染
SSR
对于首页可以直接通过node jade模板引擎输出,其他页面继续使用前端渲染,优化首屏、SEO
tzjoke commentedon May 28, 2019
lighthouse 的一些tip
yandongSS commentedon Sep 4, 2019
参考雅虎前端优化35条军规https://github.com/yingnian/Yahoo-35
blueRoach commentedon Jul 7, 2020
减少HTTP请求次数和大小:
DOM:
CSS:
如果实在有的时候数据量很大、或则图片很多,无法避免
smile-2008 commentedon Oct 21, 2020