主要考慮的方面:從內(nèi)容上壓縮踏枣,在請求上減少,頁面加載更快钙蒙,響應(yīng)更及時茵瀑,更好的用戶體驗(yàn)。
減少http請求方面:
- 用css精靈(css sprites躬厌、雪碧圖)马昨。
- 和緩存相關(guān)
1)添加Expire/Cache-Control頭(設(shè)置緩存時間,使用緩存資源,不發(fā)送http請求):Expire屬于HTTP/1.0鸿捧,頭內(nèi)容是資源在本地的過期時間屹篓,Cache-Control屬于HTTP/1.1,存的內(nèi)容是緩存距離過期時間的毫秒數(shù)匙奴。
2)配置Etag標(biāo)簽:判斷緩存內(nèi)容和服務(wù)器原始內(nèi)容是否一致堆巧,如果一致,就不用服務(wù)器提供了饥脑。 - 合并文件:合并腳本文件和樣式文件恳邀,減少http請求的數(shù)量懦冰。
- 圖片懶加載(LazyLoad Images):減少頁面剛加載時的http請求數(shù)灶轰,因?yàn)閯偧虞d的時候可以只加載第一屏,當(dāng)用戶繼續(xù)滾屏的時候再加載后續(xù)的圖片刷钢。
速度更快方面:
- 使用CDN(內(nèi)容分發(fā)網(wǎng)絡(luò)content delivery network):提高網(wǎng)站內(nèi)容的傳輸速度笋颤,使用cdn,就相當(dāng)于在離你最近的一個位置放置了一臺副本服務(wù)器内地,可以以最近的距離伴澄,最快的速度獲取到服務(wù)器上的內(nèi)容。缺點(diǎn)就是阱缓,多配置服務(wù)器會使成本較高非凌。
- 多域名:資源文件可以并行下載,但是dns查找次數(shù)也會增加【U耄現(xiàn)代瀏覽器有自己的緩存機(jī)制敞嗡,有dns緩存可以減少dns查找次數(shù)。
內(nèi)容壓縮方面:
- 用Gzip壓縮(減小http響應(yīng)的大小航背,減小文件體積):從HTTP/1.0開始喉悴,web客戶端都默認(rèn)支持http請求中有Accept-Encoding文件頭的壓縮格式,Accept-Encoding:gzip玖媚。
- 壓縮JavaScript和CSS:去除代碼中不必要的字符減少文件大小箕肃,從而節(jié)省下載時間。
優(yōu)化用戶體驗(yàn)方面:
- 將CSS文件放到頁面最上面:提高網(wǎng)頁渲染性能今魔,避免出現(xiàn)白屏或者沒有樣式的內(nèi)容勺像。
- 將script文件放在最下面:因?yàn)槟_本的加載和執(zhí)行時阻塞的,所以如果放到頁面之前會延長頁面加載時間错森,網(wǎng)頁一片空白吟宦,造成不好的用戶體驗(yàn)。所以放到頁面下面问词,先讓頁面正常顯示出來督函。
- js和css都放到外部文件中:提高js和css的復(fù)用性,減少頁面體積,提高js和css的可維護(hù)性辰狡。且目前瀏覽器都能緩存js和css文件锋叨,外置它倆不僅沒有增加http請求次數(shù),還減少了html文檔的大小宛篇。
參考:
https://blog.csdn.net/liujie19901217/article/details/52074018
https://blog.csdn.net/mahoking/article/details/51472697
https://blog.csdn.net/grandPang/article/details/51329289