摘要:第一次寫(xiě)項(xiàng)目,但是在實(shí)踐的過(guò)程發(fā)現(xiàn)了很多坑,這篇文章主要講述的是項(xiàng)目首屏加載過(guò)慢的大坑。建議使用,相對(duì)來(lái)說(shuō)算是比較快的了。在官方文檔中有相關(guān)實(shí)現(xiàn)的代碼,很簡(jiǎn)單。畢竟首屏加載,優(yōu)化都得靠了。
第一次寫(xiě) vue spa項(xiàng)目,但是在實(shí)踐的過(guò)程發(fā)現(xiàn)了很多坑,這篇文章主要講述的是spa項(xiàng)目首屏加載過(guò)慢的大坑。
在webpack的配置中,在打包的過(guò)程中,會(huì)將所有的庫(kù)都打包到vendor.js中,所以導(dǎo)致了vendor.js這包過(guò)大,而頁(yè)面要想出現(xiàn)數(shù)據(jù)必須在vendor.js加載完成以后,所以后面所做的努力基本就是想辦法把vendor.js的體積變小。
在webpack.base.conf.js這個(gè)文件中,module.exports輸出的對(duì)象里面加一個(gè)key 叫做 externals,配置如下
//webpack.base.conf.js externals: { "vue": "Vue", "vue-router": "VueRouter", "vuex": "Vuex", "axios": "axios", // "vue-lazyload": "VueLazyload", "moment": "moment", // "element-ui": "element-ui" } //index.html
externals的左邊是給 require用的 ,右邊是給全局調(diào)用的。建議使用bootcdn,相對(duì)來(lái)說(shuō)算是比較快的cdn了。
還有一種是dll打包,目前沒(méi)有實(shí)踐過(guò),下次可以試試。
后端用的是nginx,稍微配置即可開(kāi)啟gzip
sudo nano /etc/nginx/nginx.conf
在Gzip Settings里加入:
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 5; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
開(kāi)啟了以后,js、css相關(guān)的代碼可以壓縮將近5倍的體積。
3.開(kāi)啟路由懶加載開(kāi)啟了以后不同的路由組件可以分成不同的代碼,從而實(shí)現(xiàn)進(jìn)入相應(yīng)頁(yè)面以后才加載相關(guān)代碼。
在官方文檔中有相關(guān)實(shí)現(xiàn)的代碼,很簡(jiǎn)單。
//引入的時(shí)候改成懶加載的形式 const admin = resolve => require(["../views/admin.vue"], resolve);4.bundleAnalyzerReport檢測(cè)包的情況
在config/index.js中一個(gè)相關(guān)插件叫做bundleAnalyzerReport,上面有幾行注釋,講的是只要在打包的時(shí)候輸入npm run build --report,就可以在打包的同時(shí)查看每個(gè)打包生成的js,里面的庫(kù)的構(gòu)成情況,方便我們進(jìn)行相關(guān)的刪減,比如有的庫(kù)太大了,是否可以自己實(shí)現(xiàn),有的庫(kù)是否有必要,可否刪除之類。
5.服務(wù)端加載額,這個(gè)太難搞了,剛?cè)胄衝ode.js只會(huì)npm這一點(diǎn)相關(guān)知識(shí),以后有空要好好學(xué)學(xué),聽(tīng)說(shuō)通過(guò)nuxt.js是比較容易上手,還得以后慢慢實(shí)踐。畢竟首屏加載,seo優(yōu)化都得靠SSR(service side render)了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84459.html
摘要:前端日?qǐng)?bào)精選譯避免這些常見(jiàn)的錯(cuò)誤可視化分析的內(nèi)存分配與回收手機(jī)里的注冊(cè)那些事兒入門(mén)基礎(chǔ)使用高性能種提升速度的新工具中文必知必會(huì)學(xué)習(xí)筆記一個(gè)人文章在中正確的尾部調(diào)用眾成翻譯擴(kuò)展運(yùn)算符眾成翻譯眾成翻譯我們對(duì)流行框架們的選擇為了 2017-07-30 前端日?qǐng)?bào) 精選 【譯】避免這些常見(jiàn)的JavaScript錯(cuò)誤可視化分析js的內(nèi)存分配與回收手機(jī)QQ里的注冊(cè)那些事兒Node.js 入門(mén):Exp...
摘要:原文首發(fā)代碼壓縮如果你用的是服務(wù)器,請(qǐng)修改配置文件其他類似在里加入開(kāi)啟或者關(guān)閉模塊,這里使用表示啟動(dòng)設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù)默認(rèn)值是,不管頁(yè)面多大都?jí)嚎s設(shè)置系統(tǒng)獲取幾個(gè)單位的緩存用于存儲(chǔ)的壓縮結(jié)果數(shù)據(jù)流代表以為單位,按照原始數(shù)據(jù)大 原文首發(fā): https://shuirong.github.io/ 1.代碼壓縮(gzip) 如果你用的是nginx服務(wù)器,請(qǐng)修改配置文件(其他web ...
摘要:同構(gòu)和直出服務(wù)端渲染出首屏,主要為了減少用戶等待的時(shí)間,縮短白屏?xí)r間,在移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)情況下能夠獲得較好的用戶體驗(yàn)。在優(yōu)化渲染時(shí)間的時(shí)候監(jiān)控頁(yè)面情況很有用。 @(StuRep)2016.06.11 react+node同構(gòu)和直出 服務(wù)端渲染出首屏,主要為了減少用戶等待的時(shí)間,縮短白屏?xí)r間,在移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)情況下能夠獲得較好的用戶體驗(yàn)。 了解了一下react實(shí)現(xiàn)同構(gòu)和直出的方案,收藏了一些還...
摘要:最優(yōu)化渲染路徑,實(shí)際上只要聚焦三件事情最小化關(guān)鍵資源的數(shù)量最小化關(guān)鍵字節(jié)數(shù)最小化關(guān)鍵路徑的長(zhǎng)度理解頁(yè)面加載速度的測(cè)量辦法當(dāng)百度談?wù)擁?yè)面加載速度時(shí),他們并不是指加載一個(gè)網(wǎng)頁(yè)的總時(shí)間。 張超 — MAY 21, 2015 經(jīng)常有站長(zhǎng)、開(kāi)發(fā)者、運(yùn)維疑惑:為什么我們的后臺(tái)服務(wù)器很快,但是用戶要看網(wǎng)頁(yè)里面的內(nèi)容卻需要很長(zhǎng)時(shí)間?我們?cè)谏弦黄恼隆豆肢F大作戰(zhàn): 解析網(wǎng)站打開(kāi)慢的原因》中簡(jiǎn)單介紹了影...
摘要:另外,單頁(yè)應(yīng)用因?yàn)閿?shù)據(jù)前置到了前端,不利于搜索引擎的抓取。所以我們需要對(duì)自己的單頁(yè)應(yīng)用進(jìn)行一些優(yōu)化。 前言 最近秋招之余空出時(shí)間來(lái)按自己的興趣動(dòng)手做了一個(gè)項(xiàng)目,一個(gè)基于vue-cli3.0, vue,typescript的移動(dòng)端pwa,現(xiàn)在趁熱打鐵,將這個(gè)項(xiàng)目從開(kāi)發(fā)到部署整個(gè)過(guò)程記錄下來(lái),并將從這個(gè)項(xiàng)目中學(xué)習(xí)到的東西分享出來(lái),如果大家有什么意見(jiàn)或補(bǔ)充也可以在評(píng)論區(qū)提出。先介紹一下這個(gè)項(xiàng)...
閱讀 1683·2021-10-13 09:39
閱讀 3154·2021-10-12 10:11
閱讀 549·2021-09-28 09:36
閱讀 2633·2019-08-30 15:55
閱讀 1384·2019-08-30 13:04
閱讀 621·2019-08-29 17:08
閱讀 1900·2019-08-29 14:14
閱讀 3399·2019-08-28 18:23