一.減少http請求
1.圖片
(1)圖片可通過圖片合并成雪碧圖減少http請求
(2)圖片可轉(zhuǎn)換成內(nèi)聯(lián)圖片如base64圖片編碼,注意每個瀏覽器對內(nèi)聯(lián)圖片的大小限制
(3)iconfont:可利用阿里的矢量圖對純色圖標(biāo)進(jìn)行優(yōu)化偎痛,通過設(shè)置大小和顏色可通用燕鸽,也可減少請求
2.css和js合并 (不推薦使用內(nèi)聯(lián)樣式和腳本筐摘,推薦一個頁面大約一個腳本和樣式)
注意:對于模塊化文件怎么進(jìn)行合并胯究?
二.內(nèi)容分發(fā)(CDN)
1.通過將靜態(tài)資源發(fā)布在不同地理位置的服務(wù)器腔彰,縮短響應(yīng)時間燎斩。CDN的?缺點可能受到其他網(wǎng)站的影響,CDN不能控制組件服務(wù)器帶來的麻煩匆帚,例如修改http響應(yīng)只能通過CDN代理服務(wù)器進(jìn)行修改熬词。
三.緩存
(1)expires:設(shè)置http響應(yīng)頭的expires過期時間,如2019-09-09?xx-xx-xx是一個特定時間這就需要保持服務(wù)端和客戶端時間同步
(2)cache-control:max-age?設(shè)置相對時間如10000ms吸重,這就不要求時間同步互拾,這是http1.1的屬性小部分服務(wù)器還不支持
注意:更新了?內(nèi)容?如何請求新文件?
(1)通過改變請求地址
四.壓縮組件(縮小資源)
(1)http請求頭設(shè)置accept-encoding:gzip(最典型的壓縮格式),deflate;響應(yīng)頭設(shè)置content-encoding:gzip;設(shè)置資源以gzip的形式壓縮嚎幸。壓縮會增大服務(wù)器cpu的?處理時間颜矿,瀏覽器要對壓縮資源進(jìn)行解壓要檢測收益是否大于開銷。圖片和pdf就不需要在進(jìn)行壓縮嫉晶,它本身都已經(jīng)被壓縮了骑疆。
五.樣式表放在頭部(逐步呈現(xiàn))
六.腳本放在頁面底部
(1)腳本放置在頁面底部可以阻止頁面逐步呈現(xiàn),減少頁面阻塞(腳本下載的時候會按順序下載替废,阻塞頁面呈現(xiàn),阻塞頁面dom渲染)
七.避免css表達(dá)式(移動鼠標(biāo)或滾動都有可能會造成表達(dá)式求值影響性能)
八.使用外部css和js
(1)內(nèi)聯(lián)的css和js在某些情況下加載速度比外聯(lián)快箍铭,但是外聯(lián)可以緩存,組件可以復(fù)用
九.減少DNS查找舶担?
10.避免重定向
(1)重定向html會導(dǎo)致整個html文檔延遲返回坡疼,造成組件下載也延遲
11.移除重復(fù)腳本
12.Etag標(biāo)簽(用還是不用?)
13.ajax可緩存
14.精簡js