Vue提高首頁加載速度,減少加載時間

故事的開始:

爲了體驗一下把自己的網站放在外網服務器上,作爲學生黨的我,手頭沒有太多的money,只好在騰訊雲上買了一臺1核1M的服務器,這可是最低的配置了。

一開始使用npm run build得到的dist文件夾體積將近有10MB,放到服務器上,然後從外網首次打開,時間大約有15-20s吧,心想這怎麼可以忍受啊。於是乎發揮大腦的能動性,開始收集各種方法,終於皇天不負有心人,發生了以下的演變。

                                  dist文件夾       將近10MB   ->      不足1MB

                                  首頁加載時間      15-20s     ->       3-4s

 

下面將重點講解如何使用1M的服務器來把首頁加載時間縮短在3s

 

優化策略:

           這個優化策略主要從3個方面來講,做好筆記了,各位看官。

①、cdn引入

同樣的,細心的同學可能會留意到在打包完項目後,會發現dist文件中有個名爲vendor xxxx.js的文件有點亮眼,因爲它的體積相對其他js文件來說就有點大了,那麼這個文件是怎麼生成得來的呢?

這個vendor文件就是根據我們的所引入的插件、庫生成的,像Vue、ElementUI等之類的,引入的庫的越多,打包後生成的vendor文件就越大,那麼怎麼減少這個vendor文件的體積呢?

那就是把這些體積較大的插件通過cdn引入,在我們的index.html文件裏,相信做到vue開發的,在html引入外部css和js文件難不倒大家吧,如圖所示:

這裏注意下:<script>標籤要在body內,否則獲取不到所引入的cdn文件,自然就會報想Vue is not defined的錯誤了

修改完index.html 文件後,我們還需要修改另外一個地方

找到build文件夾下webpack.base.conf.js文件,找到下列地方,如圖:

選中的externals那塊本來是沒有的,是我自己添加上去的,自己按照上面的格式照搬下來即可,

這裏有個坑的需要提醒一下,上面我把element-ui給註釋掉,在看其他的文章的時候發現cdn引入element的正確操作如下:

①、external不需要寫elementUI

②、在main.js的如下都註釋掉,這可能是webpack的機制,有待討論

      // import ElementUI from 'element-ui'
                 // import 'element-ui/lib/theme-chalk/index.css'

     // Vue.use(ElementUI)

如果上面的兩步沒有正確操作,則會可能報出 ElementUI is not defined 的錯誤

 

②、大圖片另加載

這個原理也是跟上面的cdn引入一樣,基於分擔服務器下載的原理

我們在項目的時候都會有自己的images文件夾,裏面包含了自己項目所需要的圖片,雖然可以使用圖片懶加載,但我想到另外一個方法,有得必有失,這個方面就需要佔用額外的內存。

我們可以利用雲功能的對象存儲把圖片放在第三方服務器上,利用得到外鏈全部替換本地圖片路徑,這樣在加載圖片的時候比在自己的服務器快很多,這個時候只需要考慮用戶的網速而不用考慮自己服務器的帶寬。

這個只是我自己想法,相對於我這種學生黨沒錢買服務器來說哈,大公司就當我什麼都沒說

 

③、路由懶加載

官方文檔地址:     https://router.vuejs.org/zh/guide/advanced/lazy-loading.html

簡單來說就是訪問到當前頁面纔會加載相關的資源,這對提高首頁加載速度有很大的好處。

代碼格式如圖:

這裏就不多說了,因爲官方文檔有哈。

 

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