前端開發(fā)必知道的網(wǎng)站,讀書筆記如何進(jìn)行web前端性能優(yōu)化?
提起web前端性能優(yōu)化的問題,前端開發(fā)人員非常熟悉,對(duì)于一個(gè)網(wǎng)站而言,即使內(nèi)容和功能再優(yōu)秀,如果用戶需要花費(fèi)很久的時(shí)間才能打開,這樣遲早會(huì)消耗用戶的耐心,并最終失去用戶。
那如何才能優(yōu)化前端性能?歸納為三步
一、關(guān)鍵資源字節(jié)數(shù)字節(jié)數(shù)也就是通常說的減少資源文件(js、CSS、image、video...)的大小。
1、壓縮
前端使用uglify混淆壓縮
后端開啟gzip
對(duì)圖片進(jìn)行壓縮,使用壓縮比例更高的格式(WebP)
2、緩存
強(qiáng)緩存(http狀態(tài)碼:200),不用請(qǐng)求服務(wù)器直接使用本地緩存,協(xié)商緩存(http狀態(tài)碼:304),使用時(shí)先請(qǐng)求服務(wù)器若被告知緩存沒過期則使用本地緩存,不用下載資源,使用localstorage對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。
3、針對(duì)首屏優(yōu)化
對(duì)非關(guān)鍵資源延遲加載、異步加載,減少首屏資源大小
二、關(guān)鍵資源連接數(shù)1、合并請(qǐng)求
使用http2.0的多路復(fù)用合并請(qǐng)求配置combo,在無法使用http2.0的情況下作為一種合并資源請(qǐng)求的手段。
2、減少圖片請(qǐng)求數(shù)
使用spite圖,使用svg-symbol。
3、針對(duì)一些場(chǎng)景采用css、js內(nèi)聯(lián)的方式。
4、使用強(qiáng)緩存減少了一次服務(wù)器請(qǐng)求。
5、非關(guān)鍵資源延遲、異步加載,減少了首屏資源連接數(shù)。
三、關(guān)鍵渲染路徑1、bigpipe分塊輸出
這里主要是因?yàn)橐瓿梢徽麄€(gè)頁面的輸出后端需要處理很多個(gè)任務(wù),我們可以將這些多個(gè)任務(wù)進(jìn)行分塊,誰先完成誰就先輸出,最終通過JS回填的方式輸出DOM節(jié)點(diǎn),這種方式主要解決了直出頁面阻塞的問題。
2、bigrender分塊渲染
常規(guī)的手段就是采用前端模板渲染頁面,針對(duì)首屏?xí)r間主要減少了首次構(gòu)建DOM樹時(shí)的節(jié)點(diǎn)數(shù)
3、針對(duì)reflow,repaint,composit路徑處理。
4、涉及到動(dòng)畫時(shí)關(guān)于layer的概念render layer、graphics layer。
5、css放在頭部、js放底部避免阻塞DOM樹的構(gòu)建,關(guān)于css、js的位置對(duì)于頁面渲染的影響大家可以關(guān)注下相關(guān)的文章。核心:css資源不會(huì)阻塞DOM樹的構(gòu)建但會(huì)阻塞DOM的渲染,JS會(huì)阻塞DOM樹的構(gòu)建,CSS會(huì)阻塞JS的執(zhí)行。
以上就是針對(duì)Web前端性能優(yōu)化歸納出的解決方案。更多Web前端學(xué)習(xí)資料,關(guān)注“武漢千鋒”微信公眾號(hào)領(lǐng)取。
用aspnet框架開發(fā)網(wǎng)站?
前端:html、css、javascript后端:c#、sqlasp.net是.net framework中網(wǎng)站開發(fā)相關(guān)技術(shù)集的組合,包括相關(guān)的類庫(kù)、命令工具、clr、visual studio等,以及相關(guān)的技術(shù)和知識(shí)。
前端網(wǎng)頁開發(fā)需要學(xué)習(xí)什么語言?
前端網(wǎng)頁開發(fā)需要學(xué)習(xí)語言有html語言、java腳本、jQuery等。
前端開發(fā)語言是創(chuàng)建Web頁面或者app等前端界面呈現(xiàn)給用戶的一個(gè)過程,用過html、java jQuery等衍生出來的各種技術(shù)。下面來講一下前端開發(fā)語言常見到的幾款。
1、html語言:是一個(gè)網(wǎng)頁的基本標(biāo)記語言,新手掌握起來比較簡(jiǎn)單,是制作網(wǎng)頁的必備語言之一。
2、java腳本:是一種輕量級(jí)的變成語言。一般運(yùn)行在客戶端,主要是由一些事件來改變網(wǎng)頁的代碼和顯示效果的,目的是層架HTML的互動(dòng)性。是每個(gè)網(wǎng)站前端開發(fā)人員必須要掌握的
3、jQuery:是一個(gè)簡(jiǎn)潔而快速的JavaScript 庫(kù)。是由java開發(fā)出來的開源的庫(kù), 相比學(xué)習(xí)java腳本而言jQuery學(xué)起來卻比較簡(jiǎn)單,這樣降低了web前端開發(fā)的難度,并且jQuery幾乎兼容所有瀏覽器。