从前端开始的全链路优化

  1. 减少http请求
    http请求每次都需要建立通信链路,进行数据传输,在服务端每个http都需要启动独立的线程去处理,这些开销很昂贵,减少请求的数量可有效的提高访问性能。
  2. 使用浏览器缓存
    通过设置http头中的cache-control和expires的属性,可设定浏览器缓存,缓存时间可以是数天,甚至是几个月。可改变文件名来进行更新,进行避免一次性过多的更新,那样会导致服务器负载骤增,网络阻塞等问题。
  3. 启用压缩
    压缩可分为代码压缩和服务器Gzip压缩两者不冲突。
  4. CSS sprites
    合并图片可有效的减少http强求数量。
  5. Image懒加载
    网站中图片相对大小还是较大,先使网页加载完毕再加载图片,也可分批加载图片。
  6. css放在头部 js放在body闭合标签前
    css尽量都放在一起且位于头部,如果在页面渲染的过程中再次遇到css会导致dom回流,位于javascript下方的css样式会被阻塞影响页面。
  7. 避免页面回流和重绘
    回流是会导致页面重新渲染的一些元素,从而影响性能,回流是元素大小位置发生变化,重绘是字体颜色,背景颜色等发生变化相对回流性能影响较小。
  8. 减少cookie传输
    cookie包含在每次请求和响应中,太大的cookie会严重影响数据传输,对于静态资源来说不需要存在cookie 可使用独立的域名访问。
  9. javascript 代码优化
    1. 避免使用 eval和 Function
    2. HTML Collection请转为数组使用
    3. 减少作用域链查找
    4. 数据访问
        Javascript中的数据访问包括直接量 (字符串、正则表达式 )、变量、对象属性以及数组,其中对直接量和局部变量的访问是最快的,对对象属性以及数组的访问需要更大的开销。当出现以下情况时,建议将数据放入局部变量:
        a. 对任何对象属性的访问超过 1次
        b. 对任何数组成员的访问次数超过 1次
        另外,还应当尽可能的减少对对象以及数组深度查找。
    5. 字符串拼接推荐使用数组的join
  10. css选择器优化
    css选择符的解析是由右到左,尽量层级不要多
  11. 使用cdn(内容分发网络)
    就近访问,加快用户访问速度,减少数据中心负载压力。
  12. 避免重定向
  13. Ajax请求使用缓存
  14. javascript按需加载
  15. 根据文件内容产生hash串
    如果文件发生改变则文件名改变,没有改变则可进行缓存,尽量将一些不常改动的文件合并到一起,常改动的单独分开。
  16. 减少DNS的解析速度
    在访问一个网站的时候首先要经过DNS的解析。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AJax 优化 缓存 Ajax 请求尽量使用GET, 仅取决于cookie数量 Cookie 优化 减少Cooki...
    KeKeMars阅读 13,085评论 5 89
  • 前端面试题的简单整理,都只是大概回答,具体某些问题的具体理解后续会补上。 前端页面有哪三层构成,分别是什么?作用是...
    李欢li阅读 3,382评论 0 2
  • Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列...
    拉风的老衲阅读 5,841评论 0 1
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 7,477评论 0 25
  • 牧风: 你好!很高兴跟你成为同桌。 我看了你的精要主义的读后感,也很有启发,这是非常好的一种读书方式。你的文字干净...
    小坏蛋格瑞特阅读 1,801评论 2 3

友情链接更多精彩内容