性能优化简单总结

48 阅读2分钟

首屏优化

  1. 图片懒加载,精灵图,雪碧图,iconfont;小图标iconfont是矢量,不会失真,标量就会失真 通过浏览器更多工具covarage可以那些没有使用的js和css
  2. 减少网络请求
nginx服务器 可以将多个js文件请求合并成一个 webpack可以把多个js合并打包成一个
  1. 按需加载
  • 组件懒加载
  • 路由懒加载(只限于spa应用)
  • (React.lazy 16.6版本以上 配合suspense标签使用) 动态路由
React lazy使用了dynamic import 的标准,webapck只要遇到了dynamic Import,
就会把里面引入的内容单独打一个包 由于dynamic import返回时一个promise 
所以可以使用promise的状态做渲染的流程控制 如果是pengding状态,
则渲染loading组件,否则resolve状态就渲染导入的组件

4.图片过大或者js过大处理

webpack混淆和压缩(去除多余打印和无用代码,) 
压缩图片(gzip,图片base64,webP格式,使用熊猫站工具(减少不必要的元素和提取共同的元素)压缩) 
小图转base64,大图没必要转,因为base64会增大图片提及,
再使用url-loader进行加载 webp比同条件png降低26%体积
  1. webpack打包优化
optimazation-splitChunks 网络缓存进行小改动的进行缓存 
webpack-bundle-analyzer插件可以分析打包bundle依赖图
  1. CDN加速(处理静态资源)
优选选择最近的服务器加载资源 
http2.0可以破除并发请求的限制,http1.1请求最多可以同时发送6
  1. 减少dom操作
  • 使用document.createDocumentFragment创造虚拟节点
  • 采用分段渲染的形式
  • 最后使用windows。requestAnimationFrame来进行逐帧渲染
  • 劲量一次添加,不要边循环边操作dom