笔记:刘威(putaoshu)的前端全链路性能优化实战
1、js优化
js优化的总体原则:当需要时才优化;考虑可维护性
提升js文件加载性能:加载元素的顺序,css文件放在<head>里,js文件放在<body>里
js变量和函数优化:
1)尽量使用id选择器
2)尽量避免使用eval,太耗性能
3)js函数尽可能保持简洁
4)使用事件节流函数,比如100ms执行1次,用户无感知,但性能有提升
5)使用事件委托
js动画优化:
1)避免添加大量js动画
2)尽量使用css3动画、canvas动画
3)合理使用requestAnimationFrame动画代替setTimeout、setinterval
合理使用缓存:
1)合理缓存DOM对象
2)缓存列表长度
cookie:应用于会话管理、个性化、跟踪(比如埋点)
sessionStorage:应用于页面之间的传值
IndexedDB:客户端存储大量结构化数据、没有网络连接的情况下使用、将冗余并很少修改但经常访问的数据以避免随时从服务器获取数据
LocalStorage:本地存储。应用于缓存静态文件内容js/css、缓存不常变更的api接口数据、储存地理位置信息、浏览在页面的具体位置
更新策略:每次更新完后给key加一个值,本地就可以取最新值
JS模块化加载方案和选型
commonJs、AMD规范、CMD规范、ES6 import