webpack配置preload和prefetch预加载技术

这篇具有很好参考价值的文章主要介绍了webpack配置preload和prefetch预加载技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们前面已经做了代码分割,同时会使用 import 动态导入语法来进行代码按需加载(我们也叫懒加载,比如路由懒加载就是这样实现的)。

但是加载速度还不够好,比如:是用户点击按钮时才加载这个资源的,如果资源体积很大,那么用户会感觉到明显卡顿效果

要优化这种情况,可以使用preload和prefetch技术

一、什么是preload和prefetch

PreloadPrefetch是两种优化前端性能的技术,它们可以让浏览器在某些条件下提前加载一些资源,从而加快应用程序的加载速度。

Preload指的是在页面加载时预加载一些关键资源,这些资源在接下来的页面操作中会立即用到Preload可以使用rel="preload"属性来实现,比如:

<link rel="preload" href="path/to/resource" as="type"/>

其中,

  • href表示需要预加载的资源路径
  • as属性指定预加载资源的类型

相比之下,Prefetch在页面加载后不紧急需要但将来可能需要使用的资源进行预加载Prefetch的实现方式是通过添加rel="prefetch"属性来实现,例如:

<link rel="prefetch" href="path/to/resource"/>

这里

  • href表示需要预加载的资源路径。

需要注意的是,Preload和Prefetch不是浏览器强制加载资源,而是给浏览器提供了一些提示,让它在空闲时间主动加载一些资源,从而提升应用程序的性能体验

下面是一个Preload例子,假设我们有一个应用程序需要用到moment.js库,我们可以将moment.js资源进行预加载:

<head>
  <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js" as="script" />
</head>

这样,当我们在应用程序中需要用到moment.js库时,它就已经提前被加载出来了,从而避免了因为浏览器加载缓慢而导致的性能问题

二、在webpack中配置使用

  1. 下载

npm i @vue/preload-webpack-plugin -D

  1. 配置
const PreloadWebpackPlugin = require("@vue/preload-webpack-plugin");
plugins: [
	 new PreloadWebpackPlugin({
      rel: "preload", // preload兼容性更好
      as: "script",
      // rel: 'prefetch' // prefetch兼容性更差
    }),
]

配置完成之后我们进行生产打包

npm run build

webpack配置preload和prefetch预加载技术

如上图可以看到我们的公共chunk已经使用prealod方式引入到index.html中了。
webpack配置preload和prefetch预加载技术
并且他的priority是最低的。

值得注意的是这两项技术它们的兼容性不是很好
查看兼容性网站:https://caniuse.com/?search=preload文章来源地址https://www.toymoban.com/news/detail-494663.html

  • preload
    webpack配置preload和prefetch预加载技术
  • prefetch
    webpack配置preload和prefetch预加载技术

到了这里,关于webpack配置preload和prefetch预加载技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • electron学习-03preload 预加载-主进程 和 渲染进程之间通信

    主进程 是有着完全操作系统访问权限的 Node.js 环境; 渲染进程 默认跑在网页页面上。 渲染进程不能直接访问 Node.js 接口;主进程访不能直接访问 DOM。 预加载 脚本 运行在 具有 HTML DOM 和 Node.js、Electron API 的有限子集访问权限的环境中 预加载脚本: 将 Electron 的不同类型的进

    2023年04月09日
    浏览(41)
  • 17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

    其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件,SnakeYml工具默认就会被spring-boot-starter导入,因此无需开发者做任何额外配置。 YAML本质是JSON的超级,它在表示结构化文档时更有表现力。 ▲ properties文件使用 .分隔符 作为结构化的表现:

    2024年02月14日
    浏览(47)
  • Android Glide preload RecyclerView切入后台不可见再切换可见只加载当前视野可见区域item图片,Kotlin

    build.gradle文件: 如果手机图片很多,假设已经将全部图片装入宫格的列表,在快速上下滑动过程中,由于glide会累积每一个图片的加载任务,如果图片比较大,上下滑动时间又很长,那么累积任务会很严重,导致异常发生,实现在RecyclerView切入后台(或不可见)时候,然后再

    2024年02月10日
    浏览(48)
  • Webpack项目学习:Vue-cli(脚手架)-优化配置 -ui库element-plus+减小打包体积 -按需加载+自定义主题+优化

    安装 全部引入,在入口文件main.js  启动:npm start  按需引入 需要插件快速开始 | Element Plus (gitee.io)     更改默认配置 主题 | Element Plus (gitee.io)    如果有模块没有安装 ,安装一下即可 优化 关闭性能分析 文件单独打包 做缓存-

    2024年02月08日
    浏览(69)
  • webpack 打包后,图片加载错误

    使用webpack打包后,图片没有加载出来,页面空白,报错图片引用的路径不对 解决办法: 将 assetsPublicPath: \\\'/\\\', 改为 assetsPublicPath: \\\'./\\\'  找到下面这个函数的代码。 在if (options.extract) {            return ExtractTextPlugin.extract({         use: loaders,         fallback: \\\'vue-style-loader\\\',  

    2024年03月10日
    浏览(57)
  • 当我们尝试运行webpack-dev服务时,报node_modules/.bin/webpack-dev-server: Permission denied权限被拒绝要如何解决?

    在尝试运行webpack-dev服务器时,我们似乎遇到了权限问题。当用户没有执行webpack dev-server脚本所需的权限时,通常会发生此错误。 要解决此问题,您可以尝试以下步骤: 1、检查权限:首先,确保您拥有执行webpack-dev-server脚本所需的权限。您可以通过在终端中运行以下命令来

    2024年04月17日
    浏览(33)
  • Webpack加载器(Loaders)的执行顺序

    在Webpack中,加载器的执行顺序是从右往左、从下往上的。为什么会选择这样的执行顺序呢?本文将介绍Webpack加载器执行顺序的原因和解释,并通过一个CSS加载器的示例来说明。 加载器的执行顺序的设计主要考虑到提供更灵活的配置和处理模块的能力。 从右往左的顺序 从右

    2024年02月11日
    浏览(53)
  • Webpack 怎么实现按需异步加载模块

    要弄懂这个问题,需要先来看关于webpack打包的3个问题。 第一个问题 项目中的json文件,如何使用webpack进行处理? 如果我们希望把json文件当做静态配置,例如有如下json文件 在其他模块中引用: 要实现上面的效果,应该如何配置? 如果我们希望把json文件当做静态资源加载,

    2024年01月17日
    浏览(39)
  • Webpack5 动态导入按需加载

    传统上,在Webpack中,我们使用import语句可以在代码中静态地导入模块。这意味着所有的模块都会在构建时被打包到bundle中。然而,动态导入和按需加载允许开发者在运行时根据需要动态地加载模块,减少初始加载时间和资源消耗。 使用动态导入和按需加载的好处: 减少初始

    2024年02月08日
    浏览(37)
  • 请求优化--利用webpack实现根据路由进行懒加载

    使用动态导入语法 :在Vue组件中使用 import() 语法来实现按需加载。例如: 配置Webpack :确保您的Webpack配置中启用了代码分割功能。这通常通过设置 optimization.splitChunks 选项来实现。例如 使用命名块 :如果您想将某个路由下的所有组件都打包在同一个异步块中,可以使用命名

    2024年01月25日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包