经典面试题:列举优化网络性能的方法?

  • HTTP/2:开启 HTTP/2 后,利用其多路复用、头部压缩等特点,充分利用带宽传递大量的文件数据
  • 优化打包体积:利用一些工具压缩、混淆最终打包代码,减少包体积
  • 多目标打包:利用一些打包插件,针对不同的浏览器打包出不同的兼容性版本,这样一来,每个版本中的兼容性代码就会大大减少,从而减少包体积
  • 压缩:现代浏览器普遍支持压缩格式,因此服务端的各种文件可以压缩后再响应给客户端,只要解压时间小于优化的传输时间,压缩就是可行的
  • CDN:利用 CDN 可以大幅缩减静态资源的访问时间,特别是对于公共库的访问,可以使用知名的 CDN 资源,这样可以实现跨越站点的缓存
  • 缓存:对于除 HTML 外的所有静态资源均可以开启协商缓存,利用构建工具打包产生的文件 hash 值来置换缓存
  • 雪碧图:对于不使用 HTTP/2 的场景,可以将多个图片合并为雪碧图,以达到减少文件的目的
  • deferasync:通过 deferasync 等属性,可以防止 JS 阻塞 HTML 解析
  • prefetchpreload:通过 prefetch 属性,可以让页面在空闲时预先下载其他页面可能要用到的资源;通过 preload 属性,可以让页面预先下载本页面可能要用到的资源
  • 多个静态资源域:对于不使用 HTTP/2 的场景,将相对独立的静态资源分到多个域中保存,可以让浏览器同时开启多个 TCP 连接,并行下载