架構(gòu)協(xié)議類
嘗試使用SPDY和HTTP 2
在條件允許的情況下可以考慮使用SPDY協(xié)議來進(jìn)行文件資源傳輸,利用連接復(fù)用加快傳輸過程,縮短資源加載時(shí)間。HTTP 2在未來也是可以考慮嘗試的。
使用后端數(shù)據(jù)渲染
使用后端數(shù)據(jù)渲染的方式可以加快頁面內(nèi)容的渲染展示,避免空白頁面的出現(xiàn),同時(shí)可以解決移動端頁面SEO的問題。如果條件允許,后端數(shù)據(jù)渲染是一個很不錯的實(shí)踐思路。后面的章節(jié)會詳細(xì)介紹后端數(shù)據(jù)渲染的相關(guān)內(nèi)容。
使用Native View代替DOM的性能劣勢
可以嘗試使用Native View的MNV開發(fā)模式來避免HTML DOM性能慢的問題,目前使用MNV的開發(fā)模式已經(jīng)可以將頁面內(nèi)容渲染體驗(yàn)做到接近客戶端Native應(yīng)用的體驗(yàn)了。
總結(jié)
關(guān)于頁面優(yōu)化的常用技術(shù)手段和思路主要包括以上這些,盡管列舉出很多,但仍可能有少數(shù)遺漏,可見前端性能優(yōu)化不是一件簡簡單單的事情,其涉及的內(nèi)容很多。大家可以根據(jù)實(shí)際情況將這些方法應(yīng)用到自己的項(xiàng)目當(dāng)中,要想全部做到幾乎是不可能的,但做到用戶可接受的原則還是很容易實(shí)現(xiàn)的。
于此同時(shí)我們要清楚的是,在我們做到了極致優(yōu)化的同時(shí)也付出了很大的代價(jià),這也是前端優(yōu)化的一個問題。理論上這些優(yōu)化都是可以實(shí)現(xiàn)的,但是作為工程師我們也要明白懂得權(quán)衡。優(yōu)化提升了用戶體驗(yàn),使數(shù)據(jù)加載更快,但是項(xiàng)目代碼卻可能打亂,異步內(nèi)容要拆分出來,首屏的一個雪碧圖可能要分成兩個,頁面項(xiàng)目代碼維護(hù)成本成倍增加,項(xiàng)目結(jié)構(gòu)也可能變得混亂。
所以前期在設(shè)計(jì)構(gòu)建、組件的解決方案時(shí)要解決好異步的自動處理問題。任何一部分優(yōu)化都可以做得很深入,但不一定都值得,在優(yōu)化的同時(shí)也要盡量考慮性價(jià)比,這才是我們作為一名前端工程師處理前端優(yōu)化時(shí)應(yīng)該具有的正確思維。