前端的網(wǎng)絡(luò)請求的話包含,css邀泉,js嬉挡,img的請求。也包含ajax發(fā)起的請求(簡單請求和預(yù)檢請求)汇恤。
資源請求
1. 減少HTTP請求次數(shù)
建議盡可能的根據(jù)需要去合并靜態(tài)資源圖片庞钢,js和css文件,減少頁面請求數(shù)因谎,這樣可以縮短頁面首次訪問的等待時(shí)間
2.減少HTTP請求大小
除了減少請求資源數(shù)基括,也要減少每個(gè)http請求的大小。比如減少沒必要的圖片财岔,js风皿,css和html等。對文件進(jìn)行壓縮優(yōu)化匠璧,開啟gzip壓縮傳輸內(nèi)容桐款,以縮短網(wǎng)絡(luò)傳輸?shù)却舆t
3.避免頁面中的空href和src
當(dāng)link標(biāo)簽的href屬性為空或者script、img夷恍、iframe標(biāo)簽的src屬性為空的時(shí)候魔眨,瀏覽器在渲染過程中還是會把href的空內(nèi)容進(jìn)行加載,直到加載失敗裁厅。這樣就阻塞了頁面中其他資源的下載進(jìn)程冰沙,并且最后加載的內(nèi)容是無效的侨艾,因此要盡量避免执虹。
4.合理設(shè)置Etag和Last-Modified
盡量去避免304的發(fā)生,因?yàn)闀喑鲆淮握埱筮肜妫尀g覽器直接從緩存中讀取文件袋励,減少下載消耗的帶寬和服務(wù)器的負(fù)載
單獨(dú)寫一篇文章去介紹緩存的使用。點(diǎn)這里
5.使用預(yù)加載
//預(yù)加載cdn,將域名提前轉(zhuǎn)換為ip
<link rel='dns-prefetch' >
//預(yù)加載資源
<link rel='prefetch' href='prefetch.js'>
//預(yù)渲染網(wǎng)頁
<link rel='prerender' >
6.使用CDN
ajax請求
1. 拉取數(shù)據(jù)使用get請求
POST請求會先發(fā)送文件頭茬故,然后發(fā)送http正文的數(shù)據(jù)盖灸。而get請求的話只發(fā)送頭部,所以在拉取數(shù)據(jù)時(shí)使用get請求效率更高
2.減少cookie的大小并進(jìn)行cookie隔離
HTTP請求默認(rèn)是會帶上瀏覽器端的cookie一起發(fā)送給服務(wù)器端的磺芭,所以在非必要的情況下盡量減少cookie赁炎。對于靜態(tài)的資源,盡量使用不同的域名存放钾腺,因?yàn)閏ookie默認(rèn)是不能跨域的徙垫,這就做到了不同域名下靜態(tài)資源請求的cookie隔離。
3.跨域的兩次請求處理
對于http請求來說放棒,分為簡單請求和預(yù)檢請求姻报。
如果你使用自定義的請求頭,server自然無法理解间螟。就需要發(fā)出OPTIONS請求吴旋。這種情況就是預(yù)檢請求。就是你的一次請求對于客戶端來說會發(fā)出兩次請求厢破,影響服務(wù)器性能荣瑟。可以通過服務(wù)器端設(shè)置字段去簡化成一次請求摩泪。Access-Control-Max-Age