美文网首页
前端性能优化注意事项

前端性能优化注意事项

作者: Chyun | 来源:发表于2017-02-18 21:46 被阅读0次

由于前端页面绝大部分资源都是从服务器读取,而且受浏览器限制,分配的计算机资源相对较少。。页面的加载速度和性能往往受到影响。而前端页面的性能优化就变得至关重要。

非主流,先上参考(怕忘记了)。。

知乎:https://www.zhihu.com/question/21658448
csdn: http://blog.csdn.net/mahoking/article/details/51472697

这个两个参考文献都说的非常好,为了巩固自己学习和记录。就稍稍总结下吧~~

网络方面

我之前的一篇文章已经说到,http作为无状态协议,每次请求都要建立连接和断开连接。耗费的资源相当昂贵。所以要提升网页的加载速度就要从这个方面入手!!

  1. 要提升加载速度,最简单直接的方法就是减少请求。把多个js文件、css文件等合并成一个js文件、css文件。多个小图片做成雪碧图,或者base64编码加在css中,简单暴力。
  2. 利用浏览器缓存,浏览器如果曾经访问过某页面某资源,浏览器可以利用缓存读取对应的文件,而不去发送
    请求。参考我上一篇文章。

http://www.jianshu.com/p/20d82bce75a1

合并和缓存有时候是一对矛盾,一般来说公用的资源(例如,Jq等公共库)都不会选择与其他非公用资源合并来减少http请求,因为这样不能很好的利用浏览器缓存。

  1. 静态资源放在cdn上,能够有效的减少资源与浏览器的物理距离,用户请求资源时,cdn能够寻找最优的服务器为用户分配资源。
  2. dns缓存。在实际请求cdn等信息前先进行dns缓存。能够有效加快请求时间。
    在实际请求前,先在head标签中加入link标签。先缓存dns。。


    dns-prefetch
  3. 反向代理(负载均衡),可以缓存数据,减少服务器压力。
  4. gzip压缩减少代码大小。
  5. 懒加载,对于没有在首屏出现的图片实现懒加载(lazyload插件),未使用的js也可以实现懒加载(seajs,webpack)。

代码方面

  1. script标签后置,众所周知,script的执行会阻塞浏览器渲染进程(js进程与渲染进程是互斥的!)。所以,一般来说,script都放在body闭合标签的前面。让浏览器先渲染,用户就可以先可以看到视图!!
  2. 减少dom操作,或尽量批量操作,dom操作非常耗费资源!!!应该减少或尽量一次完成!(react的虚拟dom之所以比传统的模板引擎快,就是减少了不必要的dom操作!!!)
  3. 进行dom操作时,考虑Reflow & Repaint。减少回流(reflow),这个回流的成本非常大。往往会影响其他区域的布局。重绘则只影响本身。动画使用的时候尽量用css3动画(必要时gpu加速),和transform,absolute等不会导致回流的方法!!

原理:浏览器接收到页面文档后,会将文档中的标记语言解析为DOM树。DOM树和CSS结合后形成浏览器构建页面的渲染树。渲染树中包含了大量的渲染元素,每一个渲染元素会被分到一个图层中,每个图层又会被加载到GPU形成渲染纹理,而图层在GPU中 transform
是不会触发 repaint 的,这一点非常类似3D绘图功能,最终这些使用 transform
的图层都会由独立的合成器进程进行处理。著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。原文: http://www.w3cplus.com/css3/introduction-to-hardware-acceleration-css-animations.html © w3cplus.com

  1. 多次访问对象的一个属性或数组的一个元素时,建议将数据放入局部变量;
  2. 在javascript中使用"+"进行字符串拼接,效率会比较地下。因为每次运行都会开辟新的内存并生成新的字符串变量,与之相比的有数组的join方法。这个方法的相对来说更为高效,但数组也会有一定的开销。所以当字符串拼接较多的时候使用Arrary.prototype.join()方法,否则使用"+";
  3. css,实际上浏览器对选择符的解析是从右往左进行的。根据浏览器的这一行为特点,在写选择符的时候需要注意很多事项,

css性能优化:https://www.zhihu.com/question/19886806

  1. 减少作用域链闭包的查找,在很深的作用域链内使用多次使用全局变量时,可以先把全局变量先保存在局部作用域中并。

相关文章

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • 前端性能优化(上)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 为什么要进行前端性能...

  • 前端面试必问及加分点---性能优化篇

    如何进行网站性能优化 你有用过哪些前端性能优化的方法? 谈谈性能优化问题 代码层面的优化 前端性能优化最佳实践

  • 前端性能优化

    对于前端的性能优化,主要有分为加载优化和性能优化。在Google官方文档中,给出了性能优化有哪些好处。前端优化的最...

  • 常用的后端性能优化六种方式:缓存化+服务化+异步化等

    性能优化专题 前端性能优化 数据库性能优化 jvm和多线程优化 架构层面优化 缓存性能优化 常用的后端性能优化六大...

  • 关于前端性能优化问题详解

    关于前端性能优化问题详解 出处:http://segmentfault.com/blogs 前端性能优化指南 AJ...

  • 前端性能优化

    前端性能优化 下面是我认知的前端性能优化的策略,本书主要着手 JavaScript 优化展开阐述。 JavaScr...

  • 2019-10-22

    2018 前端性能优化清单

  • 2020-04-11

    前端工程化相关 前端动画相关 优化前端性能

网友评论

      本文标题:前端性能优化注意事项

      本文链接:https://www.haomeiwen.com/subject/jgcdwttx.html