想要成為一名合格的Web前端工程師,Web前端性能優(yōu)化是一個(gè)必須要掌握的知識(shí),那么應(yīng)該怎么進(jìn)行Web前端性能優(yōu)化呢?
前端性能優(yōu)化,資源的合并與壓縮,圖片編碼的原理,以及類型的選擇,瀏覽器的渲染機(jī)制,懶加載,預(yù)加載,瀏覽器存儲(chǔ),緩存機(jī)制,PWA和Vue-SSR等。
技術(shù)棧,Vue.js和Chrome,調(diào)試工具performance和layers。那么什么是前端性能優(yōu)化原理的點(diǎn),涉及作用以及原理,如何與真實(shí)的項(xiàng)目場(chǎng)景結(jié)合,理論結(jié)合實(shí)戰(zhàn)經(jīng)驗(yàn),進(jìn)行量化分析。
前端優(yōu)化,一般是先基礎(chǔ)優(yōu)化(圖片編碼原理等問(wèn)題),高一點(diǎn)即為 進(jìn)階優(yōu)化(瀏覽器的渲染機(jī)制,瀏覽器的存儲(chǔ),優(yōu)化),結(jié)合服務(wù)端進(jìn)行優(yōu)化(首屏渲染等問(wèn)題)等。
前端性能優(yōu)化方案,最小化HTTP的請(qǐng)求,使用內(nèi)容交付網(wǎng)絡(luò),避免空src或是href,添加過(guò)期或者是緩存控制標(biāo)頭,gzip組件,將styleSheets放在頂部,將腳本放在最下面,避免css表達(dá)式,減少dns的查找,將js和css設(shè)置為外部,避免重定向,配置etag,使用ajax緩存,減少dom元素的數(shù)量,沒(méi)有404,減少cookie的大小,不縮放HTML中的圖像,避免使用過(guò)濾器,使用favicon.icon小型且可緩存。
合并文件是一種通過(guò)將所有腳本合并為一個(gè)腳本,類似將所有css合并為一個(gè)樣式表來(lái)減少HTTP請(qǐng)求數(shù)量的方法。
實(shí)現(xiàn)性能優(yōu)化,第 一,減少我們的HTTP請(qǐng)求的數(shù)量,以及減少請(qǐng)求的資源大小,第二,資源的壓縮與合并的原理是什么。壓縮與合并前是什么樣的效果,壓縮與合并后又有什么區(qū)別。
如何減少我們HTTP請(qǐng)求的大小,每一個(gè)HTTP請(qǐng)求都要走網(wǎng)絡(luò)環(huán)境才能達(dá)到我們的服務(wù)器,每一次請(qǐng)求都有網(wǎng)絡(luò)環(huán)境的損耗,把多次HTTP請(qǐng)求減少到一次,減少網(wǎng)絡(luò)環(huán)境中的損耗。也可以從服務(wù)器端出發(fā),先把反映到頁(yè)面中效果進(jìn)行渲染,然后直出到網(wǎng)頁(yè)上。
每一次請(qǐng)求都有網(wǎng)絡(luò)環(huán)境的損耗,我們可以把多次HTTP請(qǐng)求合并成一次,從而減少相同的環(huán)境損耗。
帶寬,一個(gè)HTTP的請(qǐng)求大小能夠較小的話,訪問(wèn)就比較快一些,瀏覽器端的渲染過(guò)程,使用框架,就要從瀏覽器中進(jìn)行渲染,框架中的模板是要在瀏覽器中進(jìn)行渲染的,這個(gè)在框架中進(jìn)行渲染,不利于首屏,對(duì)首屏有很大的損耗,不利于前端的性能。
服務(wù)器的渲染,將HTML渲染后直出到我們?yōu)g覽器頁(yè)面,不是在瀏覽器中進(jìn)行渲染了。
前端性能優(yōu)化點(diǎn),通過(guò)HTTP請(qǐng)求的過(guò)程,可以了解到,我們可以通過(guò)dns進(jìn)行緩存從而減少dns查詢的時(shí)間,網(wǎng)絡(luò)請(qǐng)求的過(guò)程走最近的網(wǎng)絡(luò)環(huán)境,相同的靜態(tài)資源進(jìn)行緩存,減少HTTP請(qǐng)求的大小,減少HTTP請(qǐng)求,服務(wù)器端渲染,從業(yè)務(wù)中進(jìn)行前端優(yōu)化點(diǎn)。