前端性能优化



减少与后端的交互次数

在不影响前端交互的前提下尽量减少与后端的交互次数。

压缩资源

利用WebPack等工具压缩CSS、JS文件,减少网络传输文件大小;压缩图片,有些PNG的图片压缩率能达到50%~60%,大大减少了网络传输资源的大小

利用浏览器缓存特性

浏览器会缓存资源,当与后端服务器交互时,发现资源没有发生改变时,会从本地直接渲染,而不会去后端服务器拉取,所以应该充分利用浏览器这一特性,将框架等一些不常变化的代码单独打包(注意设置为chunkhash的模式),尽量减少浏览器向后端服务器拉取资源的操作;

在Web服务端设置缓存

在Web服务端,如Nigix、Apache等设置资源缓存,当代码更新时,利用不一样的hash值通知浏览器重新获取资源,当资源hash值未发生变化时,将直接使用浏览器本地缓存,加快浏览器获取资源的速度。 注意:HTML页面不能缓存,否则会导致无法获取新的CSS、JS文件等情况;

利用浏览器CDN限制

单个浏览器访问单域的线程数是有限制的,以防止所有资源被同一个浏览器占用完的情况,因此将代码打包成多份,分别部署在不同的域上(如将不常变动的部分部署在特定的域上),就可以突破浏览器的CDN限制,多并发地拉取资源,加快浏览器获取资源的速度。

代码程序优化

尽量减少eval函数,在不熟悉闭包函数的情况下,减少使用,因为不恰当的使用会影响浏览器的垃圾回收机制,造成内存、CPU开销过大等问题;

总结:前端性能优化的根本:降低浏览器重新渲染网页的频率和成本。