● CSS样式表置于头部导入,在渲染DOM-TREE的时候预先请求样式资源,让页面渲染速度加快
● 基于ajax/fetch获取的数据,对于不经常更新的做缓存【本地存储】
● 减少DNS解析次数【真实项目往往是增加解析次数,来多服务器资源部署,但是可以DNS预解析】
● 实现资源文件的强缓存和协商缓存
● CSS选择器层级不要太深
● 避免404【SEO优化手段】
● 基于事件委托实现事件绑定
● 函数的防抖和节流,降低触发的频率
● 尽可能使用CSS3动画,如果需要使用JS动画,则最好使用requestAnimationFrame
● 使用HTTP2.0来处理【多路复用 & 主动推送 & 减少头信息的传输 & 二进制格式传输】
● cookie存储的信息尽可能少一些【原因:每一次项服务器发送请求,都会把cookie带上】
● 不要使用@import导入CSS资源【原因:阻塞GUI的渲染】
● 代码编写中要“低耦合高内聚【封装】”
● 减少闭包的使用【原因:占用栈内存】,最好手动释放没用的内存“内存优化”
● 避免循环的多级嵌套【原因:时间复杂度过高】,避免死循环【原因:阻塞JS引擎线程的渲染】
● script放在页面底部,而且可以使用defer/async,使其变为异步获取
● 图片格式尽可能使用webp
● 开启HTTP的Connection:Keep-Alive
● 使用webworker和scoket.io实现数据实时通信,避免长轮询
● 及时清除没用的定时器【属于内存优化】
● 开启服务器端的GZIP压缩
● 避免死递归【原因:死递归会导致栈内存溢出】
● 在js中有一些代码尽量少用(打死都别用,性能消耗很大):with/eval...
● 使用正则表达式虽然可以很方便的处理字符串,但是复杂的正则表达式也会带来性能上的损耗
● 各种循环方式性能的对比(好->坏):for/while、内置方法(例如:forEach)、for of、for in
● CSS中减少对filter的使用
● 图片使用BASE64【正常方式加载图片,需要经历:请求、编码、渲染三个步骤,而每个步骤都需要一些时间】,而BASE64是直接给图片设置对应的编码,浏览器只需要渲染即可。【问题:BASE64码太长了,不方便开发和维护,也增加了页面请求的时间,所以真实项目中,BASE64我们一般会基于webpack编译生成,而且不要过度使用】
● 音视频采用流信息播放
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。