实习第五十五天(前端性能优化的方法)

网络请求

  • 减少HTTP资源请求次数(合并接口)
  • 减小HTTP请求大小
  • 避免页面中空的href和src
  • 减少页面重定向
  • 根据条件使用可缓存的AJAX
  • 减少Cookie的大小并进行Cookie隔离
  • 推荐使用异步JavaScript资源
  • 消除阻塞渲染的CSS及JavaScript
  • 避免使用CSS import引用加载CSS

页面渲染

  • 把CSS资源引用放到HTML文件顶部
  • JavaScript资源引用放到HTML文件底部
  • 不要在HTML中直接缩放图片
  • 减少DOM元素数量和深度
  • 减少重绘和回流
  • 尽量避免使用<table>、<iframe>等慢元素
  • 避免使用CSS表达式或CSS滤镜(渲染速度慢)

其它

  • 拼接、合并、压缩、制作雪碧图
  • 使用静态资源CDN托管存储文件
  • 尽量缓存能缓存的资源
  • 将CSS或JavaScript放到外部文件中,避免使用或标签直接引入(可以有效利用浏览器的静态资源缓存)
  • 提高代码质量

1)html:
dom的层级尽量不要太深,否则会增加dom树构建的时间,js访问深层的dom也会造成更大的负担。
meta标签里需要定义文档的编码,便于浏览器解析

2)css:
减少 CSS 嵌套层级和选择适当的选择器
正确使用 Display 属性,因为 Display 属性会影响页面的渲染
避免 CSS 表达式
移除空的 CSS 规则
不滥用 Web 字体、Float
不声明过多的 Font-Size
值为 0 时不需要单位
标准化各种浏览器的前缀
避免让选择符看起来像正则表达式

3)js:
减少通过JavaScript代码修改元素样式,尽量使用修改class名方式操作样式或动画
访问dom节点时需要对dom节点转存,防止循环中重复访问dom节点造成性能损耗。
慎用 定时器 和 计时器, 使用完后需要销毁。
用于复杂计算的js代码可以放在worker进程中运行
对于一些高频的回调需要对其节流和消抖,就是 debounce 和 throttle 这两个函数。比如scroll和touch事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容