網站首頁 編程語言 正文
我們前面已經做了代碼分割,同時會使用 import 動態導入語法來進行代碼按需加載(我們也叫懶加載,比如路由懶加載就是這樣實現的)。
但是加載速度還不夠好,比如:是用戶點擊按鈕時才加載這個資源的,如果資源體積很大,那么用戶會感覺到明顯卡頓效果。
要優化這種情況,可以使用preload和prefetch技術
一、什么是preload和prefetch
Preload
和Prefetch
是兩種優化前端性能的技術,它們可以讓瀏覽器在某些條件下提前加載一些資源,從而加快應用程序的加載速度。
Preload
指的是在頁面加載時預加載一些關鍵資源,這些資源在接下來的頁面操作中會立即用到。Preload
可以使用屬性來實現,比如:
<link rel="preload" href="path/to/resource" as="type"/>
其中,
- href表示需要預加載的資源路徑
- as屬性指定預加載資源的類型
相比之下,Prefetch
是在頁面加載后不緊急需要但將來可能需要使用的資源進行預加載。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中配置使用
- 下載
npm i @vue/preload-webpack-plugin -D
- 配置
const PreloadWebpackPlugin = require("@vue/preload-webpack-plugin");
plugins: [
new PreloadWebpackPlugin({
rel: "preload", // preload兼容性更好
as: "script",
// rel: 'prefetch' // prefetch兼容性更差
}),
]
配置完成之后我們進行生產打包
npm run build
如上圖可以看到我們的公共chunk已經使用prealod方式引入到index.html中了。
并且他的priority是最低的。
值得注意的是這兩項技術它們的兼容性不是很好
查看兼容性網站:https://caniuse.com/?search=preload
- preload
- prefetch
原文鏈接:https://blog.csdn.net/jieyucx/article/details/131271315
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-04-12 安裝zsh&oh-my-zsh(沒有root權限)
- 2023-02-01 C++泛型編程綜合講解_C 語言
- 2022-07-03 Android利用貝塞爾曲線繪制動畫的示例代碼_Android
- 2022-08-26 Jquery實現下拉菜單案例_jquery
- 2022-03-23 深入淺析OpenCV?copyTo()函數_C 語言
- 2022-10-14 linux服務器安裝redis并設置redis開機自啟和遠程連接
- 2023-07-16 uniapp 中 uni.navigateTo跳轉其他頁面 并且帶參數
- 2023-05-16 pyinstaller打包遇到的問題解決_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支