pwa單頁應用的首屏加載優化

接着上篇文章pwa實現後,有些網站對於首次加載速度有着特別的要求,我會聊一下不同要求下的幾種解決方案的優缺點,至於很具體的實現這邊不做闡述了。

1、SSR

這種方案現在的主要目的其實是seo方面的比較多,但是因爲其實服務器端先把要呈現的頁面效果返回,然後再加載單頁的文件來接手頁面,類似快照功能。具體實現可以查看對應技術官網對ssr的文檔,vue的實現可以參考這個vue ssr demo,官網示例由於牆的原因運行不起來。
優點:頁面的展示效果會比較快呈現
缺點:因爲需要服務器去創建快照所以會消耗服務器性能;還有就是代碼需要適配前端和後端,還要保持效果一致比較考驗功力;頁面的交互依然需要等待單頁的js加載完成才能操作。

2、cdn

cdn網絡加速技術,不需要進行太多改動,網上的cdn服務商也很多。
優點:改動小;對於國際環境引起的效果好;減少服務器帶寬
缺點:依賴包可以使用免費的,本身項目如果要用可能需要付費
ps:我這邊兩個項目使用外鏈cdn後,一個沒問題;一個vue-router會報錯,vue-router不使用cdn引入後就好了,不知道什麼原因。

3、按需加載

這裏我把vue-router的動態懶加載、語言包的按需加載、組件庫的按需加載等等都算了進去,把這些都做了後會發現減少體積也很多,尤其是語言包。
優點:界面顯示所需文件的大小會明顯減小
缺點:後續跳轉時加載其他文件交互變慢,這個需要配合預加載等技術來解決,不能減少首次的加載的文件的數量

4、刪除預加載

vue打包的時候會把沒有用的文件以prefetch、preload預加載的形式注入到html中,在網絡比較差的時候多少會影響點顯示速度,把這些預加載刪除可以加快顯示,如果使用了ServiceWorker,它也會有一個預加載需要處理。
優點:首次的加載的文件數量減少,顯示自然就加快了
缺點:因爲預加載沒有,後面的跳轉肯定需要等待網絡加載文件了

gzip壓縮不放在裏面是因爲我認爲gzip這個是必做的。這邊是通用建議將公共的依賴包使用免費的cdn,然後把按需加載做好,然後加個loading框就好了,只要不是網絡差到極限了都是可以的,如果真的差到極限了再把預加載刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章