webpack学习笔记-webpack优化代码运行性能-Preload和Prefetch

139 阅读1分钟

Preload与Prefetch

我们前面已经做了code split,同时会使用import() 动态导入语法来进行代码按需加载(或者是懒加载,例如路由懒加载就是这样实现的)。但是加载速度还不够好,比如:用户点击按钮时才加载这个资源的,如果资源体积很大,那么用户会感觉明显卡顿,我们想在浏览器空闲时间去加载后续需要使用的资源。这里就使用上 PreloadPrefetch

  • Prelaod: 告诉浏览器立即加载资源
  • Prefetch: 告诉浏览器在空闲时间才开始加载资源

PreloadPrefetch 的共同点:

  • 它们都是只加载资源,并不执行。
  • 都有缓存

PreloadPrefetch 的区别:

  • Preload 加载的优先级高,prefetch 加载的优先级低
  • Preload 只能加载当前页面需要使用的资源,Prefetch 不仅可以加载当前页面的资源,还可以加载其他页面的资源。

PreloadPrefetch 的缺点:

兼容性差,我们可以去Can I Use查询api的兼容性

  • Preload

image.png

  • Prefetch

image.png

我们在webpack中怎么使用preloadprefetch

  • 下载插件 @vue/preload-webpack-plugin
npm install @vue/preload-webpack-plugin --save-dev
  • webpack.config.js中配置
const PreloadWebpackPlugin = require('@vue/preload-webpack-plugin')
medule.exports={
  ...
  plugins:[
    new PreloadWebpackPlugin({
      rel:'preload', // preload | prefetch
      as:'script'
    })
  ]
}
  • npm run build 打包

这是preload打包后的html文件

image.png

这是prefetch 打包后的html文件

image.png