首屏加载优化

140 阅读2分钟

1. 资源压缩- 体积优化

打包分析,去除一些没必要的引入,  一些组件库或者插件库按需引入, 压缩图片,优化SVG图片

2. 传输优化

托管至OSS + CDN加速, 开启HTTP2

HTTP/2在性能、安全性和可用性方面都有显著的改进,可以使 Web 应用更加快速、高效和可靠。

  • 多路复用:HTTP/2 允许同时发送多个请求和响应,而不是像 HTTP/1.1 一样只能一个一个地处理。这样可以减少延迟,提高效率,提高网络吞吐量。

  • 二进制传输:HTTP/2 使用二进制协议,与 HTTP/1.1 使用的文本协议不同。二进制协议可以更快地解析,更有效地传输数据,减少了传输过程中的开销和延迟。

  • 改进的安全性:HTTP/2 默认使用 TLS(Transport Layer Security)加密传输数据,提高了安全性。

  • 兼容 HTTP/1.1:HTTP/2 可以与 HTTP/1.1 共存,服务器可以同时支持 HTTP/1.1 和 HTTP/2。如果客户端不支持 HTTP/2,服务器可以回退到 HTTP/1.1

3. 感知优化

loading动画, 骨架加载, 图片懒加载, 

4. 代码层面(vue优化)

1. 路由懒加载

借助webpack的import()实现异步组件, 通过**import()**引用的子模块会被单独分离出来,打包成一个单独的文件(打包出来的文件被称为chunk )。访问时才异步加载,

2. 组件缓存

避免重复创建组件实例, 保留组件缓存状态

3. 多使用v-show ,避免重复创建组件,  避免 v-if 和v-show 一起使用 , 

不再变化的数据可以使用v-once按自定义条件跳过更新使用 v-momo, 有条件的跳过渲染

4. 长列表虚拟滚动

虚拟滚动——指的是只渲染可视区域的列表项,非可见区域的不渲染,在滚动时动态更新可视区域,该方案在优化大量数据渲染时效果是很明显的

5. 事件销毁

6. 图片懒加载(v-lazy) 

7. 子组件分割策略: 重逻辑,状态组件适合拆分,  不宜过度拆分组件, 组件实例消耗远大于纯DOM节点

5.服务端渲染/静态网站生成: SSR/SSG