最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue通過懶加載提升頁(yè)面響應(yīng)速度

 更新時(shí)間:2021年05月10日 16:48:23   作者:葡萄城技術(shù)團(tuán)隊(duì)  
這篇文章主要介紹了Vue通過懶加載提升頁(yè)面響應(yīng)速度,對(duì)Vue性能感興趣的同學(xué),可以參考下

概述

項(xiàng)目的目的是要通過數(shù)據(jù)透視表和Excel公式來分析公司的各項(xiàng)運(yùn)營(yíng)數(shù)據(jù)。不過在集成后,在開發(fā)環(huán)境頁(yè)面運(yùn)行流暢,大量數(shù)據(jù)加載處理也很快。但是發(fā)布生產(chǎn)后,在用戶每次打開頁(yè)面時(shí),加載時(shí)間上相較開發(fā)階段均有所降低,經(jīng)過排查速度變慢是由于發(fā)布包的vendor.js變大所導(dǎo)致的,這個(gè)文件加載每次都需300毫秒左右,由于小的Vue項(xiàng)目并沒有做模塊劃分,所以所有的代碼都直接打包到了vendor中,在集成了新功能后,發(fā)布包也隨之變大了。

既然找到了原因,就開始著手優(yōu)化,在前端對(duì)于需加載較大資源時(shí),一般都采用懶加載的方式來優(yōu)化效率。

什么是懶加載?

懶加載也叫做延時(shí)加載,在網(wǎng)頁(yè)響應(yīng)時(shí)不立刻請(qǐng)求資源,待頁(yè)面加載完畢或者按需響應(yīng)時(shí)再加載資源,以達(dá)到提高頁(yè)面響應(yīng)速度以及節(jié)省服務(wù)器資源的謎底。網(wǎng)頁(yè)中常用的懶加載是圖片的懶加載,對(duì)于類似淘寶一樣的多圖頁(yè)面,如果等待所有圖片都下載完成再響應(yīng)用不必然造成頁(yè)面加載的卡頓。對(duì)于JS資源的加載也是同樣的道理,大JS的加載會(huì)造成JS阻塞,頁(yè)面出現(xiàn)停止響應(yīng)的假死狀態(tài)。因此可以通過按需加載的方式,提高頁(yè)面首屏的加載速度。

總結(jié)了具體優(yōu)化步驟,下面我們就開始著手優(yōu)化吧!

開始優(yōu)化

首先是項(xiàng)目環(huán)境:Vue 2.6

開發(fā)環(huán)境:Vue-cli 4.5 + TypeScript 3.9

劃分業(yè)務(wù)模塊

通過路由異步加載模塊,加速首屏以及其他頁(yè)面加載速度,在Vue Router中將webExcel模塊配置為懶加載模式,配置后webExcel組件會(huì)按照指定的webpackChunkName打包為單獨(dú)的文件,并在訪問webExcel路由的時(shí)候才會(huì)加載。這樣訪問home以及about頁(yè)面時(shí)并不會(huì)加載webExcel資源。

懶加載路由配置

打包發(fā)布訪問頁(yè)面,首屏秒開,直接訪問about依舊秒開??墒遣榭淳W(wǎng)絡(luò)請(qǐng)求時(shí)候發(fā)現(xiàn)訪問首頁(yè)時(shí)請(qǐng)求了about和web Excel的資源。經(jīng)過排查發(fā)現(xiàn)vue-cli在頁(yè)面中使用了preload和prefetch預(yù)加載機(jī)制,在不影響當(dāng)前頁(yè)面加載的情況下預(yù)加載后續(xù)頁(yè)面需要的資源提升用戶體驗(yàn),這里為了演示清晰注釋掉prefetch的資源。

(臨時(shí)禁用prefetch預(yù)加載)

開啟路由懶加載后首頁(yè)并未加載about和webExcel。

(首頁(yè)Home網(wǎng)絡(luò)請(qǐng)求)

清理網(wǎng)絡(luò)請(qǐng)求記錄,點(diǎn)擊Web Excel,訪問webExcel頁(yè)面,此時(shí)會(huì)請(qǐng)求webExcel資源并展示組件。

(webExcel頁(yè)面網(wǎng)絡(luò)請(qǐng)求)

在線Excel組件懶加載

進(jìn)一步優(yōu)化使用插件頁(yè)面打開速度

優(yōu)化了路由加載,為了提升用戶體驗(yàn),進(jìn)一步優(yōu)化webExcel頁(yè)面,開啟組件懶加載,當(dāng)需要Designer組件的時(shí)候再加載。

開啟異步組件的方式類似于路由,直接配置import組件即可,替換原有的靜態(tài)import。

(組件懶加載)

這里我們一步到位使用AsyncComponent配置,這樣在加載組件(loading)時(shí)候可以給用戶一個(gè)提示。

(頁(yè)面模板)

(異步組件懶加載)

頁(yè)面上通過displayDesigner屬性控制Designer組件是否顯示,setTimeout 3秒后開始加載Designer組件并展示。LoadingComponent在加載時(shí)展示loading狀態(tài)。

可以從網(wǎng)絡(luò)請(qǐng)求中看到,webExcel加載完3秒后開始請(qǐng)求designer資源,請(qǐng)求時(shí)顯示LoadingComponent,請(qǐng)求完畢展示Desinger 組件。

開啟gzip壓縮,加速資源請(qǐng)求速度

為了進(jìn)一步加速資源請(qǐng)求,可以開啟服務(wù)器gizp壓縮,目前大部分瀏覽器都支持gzip,可以開啟服務(wù)器的gzip功能,服務(wù)器在傳輸資源之前先進(jìn)行壓縮。

網(wǎng)絡(luò)請(qǐng)求Request中會(huì)出現(xiàn)如下內(nèi)容,就表示支持gzip

Accept-Encoding: gzip, deflate, br

Vue-cli可以在打包時(shí)就將資源提前進(jìn)行g(shù)zip打包,這樣服務(wù)器直接返回打包后的資源不需要再次打包了。通過使用compression-webpack-plugin插件可以在打包時(shí)直接生成gz壓縮文件。關(guān)于gzip的配置可以根據(jù)具體部署情況設(shè)置。

總結(jié)

經(jīng)過以上優(yōu)化,首屏加載資源僅需Vue基礎(chǔ)組件和Home頁(yè)面組件,首屏加載速度回復(fù)到原始200毫秒。其他未使用Designer組件的頁(yè)面也無需加載資源,同時(shí)Designer組件加載一次,后續(xù)其他頁(yè)面再使用組件也無需再次加載

以上就是關(guān)于Vue路由和組件懶加載的一些配置,不過懶加載不是萬能的,還是要從實(shí)際需求出發(fā)決定是否使用。

以上就是Vue通過懶加載提升頁(yè)面響應(yīng)速度的詳細(xì)內(nèi)容,更多關(guān)于Vue懶加載提升響應(yīng)速度的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解vue + vuex + directives實(shí)現(xiàn)權(quán)限按鈕的思路

    詳解vue + vuex + directives實(shí)現(xiàn)權(quán)限按鈕的思路

    這篇文章主要介紹了詳解vue + vuex + directives實(shí)現(xiàn)權(quán)限按鈕的思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue3+TS 實(shí)現(xiàn)自定義指令長(zhǎng)按觸發(fā)綁定的函數(shù)

    vue3+TS 實(shí)現(xiàn)自定義指令長(zhǎng)按觸發(fā)綁定的函數(shù)

    這篇文章主要介紹了vue3+TS實(shí)現(xiàn)自定義指令長(zhǎng)按觸發(fā)綁定的函數(shù),文中給大家分享了編寫自定義指令時(shí)遇到的幾個(gè)難點(diǎn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • vue學(xué)習(xí)筆記五:在vue項(xiàng)目里面使用引入公共方法詳解

    vue學(xué)習(xí)筆記五:在vue項(xiàng)目里面使用引入公共方法詳解

    這篇文章主要介紹了在vue項(xiàng)目里面使用引入公共方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解vue-router和vue-cli以及組件之間的傳值

    詳解vue-router和vue-cli以及組件之間的傳值

    這篇文章主要介紹了詳解vue-router和vue-cli以及組件之間的傳值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 利用Vue.js指令實(shí)現(xiàn)全選功能

    利用Vue.js指令實(shí)現(xiàn)全選功能

    最近做了兩個(gè)vue的項(xiàng)目,都需要實(shí)現(xiàn)全選反選的功能,兩個(gè)項(xiàng)目用了兩種實(shí)現(xiàn)方法,第一個(gè)項(xiàng)目用vue的computed,第二個(gè)項(xiàng)目用指令來實(shí)現(xiàn),用起來,發(fā)覺指令更加方便。下面就來介紹如何利用指令來實(shí)現(xiàn)全選。
    2016-09-09
  • 詳解vue高級(jí)特性

    詳解vue高級(jí)特性

    這篇文章主要介紹了vue高級(jí)特性的相關(guān)知識(shí),文中介紹非常細(xì)致,幫助大家更好的參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • vue+elementui 對(duì)話框取消 表單驗(yàn)證重置示例

    vue+elementui 對(duì)話框取消 表單驗(yàn)證重置示例

    今天小編就為大家分享一篇vue+elementui 對(duì)話框取消 表單驗(yàn)證重置示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定

    詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定

    這篇文章主要介紹了詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue實(shí)現(xiàn)與安卓、IOS交互的方法

    vue實(shí)現(xiàn)與安卓、IOS交互的方法

    這篇文章主要介紹了vue實(shí)現(xiàn)與安卓、IOS交互的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vue2?響應(yīng)式系統(tǒng)之異步隊(duì)列

    Vue2?響應(yīng)式系統(tǒng)之異步隊(duì)列

    這篇文章主要介紹了Vue2?響應(yīng)式系統(tǒng)之異步隊(duì)列,文章基于Vue2?的相關(guān)資料展開對(duì)主題的詳細(xì)介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論

仁怀市| 舟山市| 绥芬河市| 永宁县| 高陵县| 拉孜县| 永春县| 洪雅县| 师宗县| 岫岩| 灵璧县| 平利县| 波密县| 玉溪市| 简阳市| 广东省| 南召县| 洛阳市| 营山县| 琼结县| 韶山市| 靖江市| 原平市| 中卫市| 小金县| 汶川县| 乐平市| 彰武县| 宜君县| 济南市| 黄石市| 昌江| 噶尔县| 青田县| 吴忠市| 泗水县| 泰州市| 革吉县| 方山县| 汕尾市| 休宁县|