嘗試合并圖片,CSS和JS。例如,如果你加載一個頁面,如果有5個CSS文件,你會發(fā)送5個HTTP請求,這會讓用戶在_次訪問你的頁面時等待很長時間。如果將這五個文件合并成一個文件,只需發(fā)送一次HTTP請求,就可以節(jié)省網(wǎng)絡(luò)請求時間,加快頁面加載速度。
網(wǎng)站上的靜態(tài)資源(CSS、JS)都是CDN發(fā)布的,圖片也是。
當(dāng)link標(biāo)記的屬性為空,腳本標(biāo)記的SRC屬性為空時,瀏覽器在呈現(xiàn)時將當(dāng)前頁面的URL作為其屬性值,從而加載頁面內(nèi)容作為其值。所以我們應(yīng)該避免這種疏忽。
Gzip可以壓縮任何文本類型的響應(yīng),包括HTML、XML、JSON。大大減少了請求返回的數(shù)據(jù)量。
網(wǎng)頁上的資源是從上到下加載的,因此CSS被放在頁面的頂部,首先呈現(xiàn)頁面,這讓用戶感覺頁面加載很快。
加載JS時,后續(xù)資源將被阻塞。必須等到JS加載后才能加載后續(xù)文件。因此,JS被放在頁面的底部并終加載。
這涉及到CSS和JS的壓縮?,F(xiàn)在有很多壓縮工具。主流的基本前端構(gòu)建工具可以壓縮CSS和JS文件,如grunt、GLUP等。
除了添加額外的HTTP請求,多個操作也會浪費時間。在IE和Firefox中,無論腳本是否可緩存,它們都存在反復(fù)計算JavaScript的問題。
它用于確定瀏覽器緩存中的元素是否與原始服務(wù)器上的元素一致。它比上次修改日期更靈活。例如,如果一個文件在一秒鐘內(nèi)被修改10次,Etag可以通過結(jié)合inode(inode個數(shù))、mtime(修改時間)和size來準(zhǔn)確判斷,避免了UNIX記錄mtime只能準(zhǔn)確到秒的問題。兩個參數(shù)可用于服務(wù)器群集。利用etag降低web應(yīng)用的帶寬和負(fù)載
當(dāng)使用XMLHttpRequest時,瀏覽器中的post方法是兩個步驟的過程:首先發(fā)送頭,然后發(fā)送數(shù)據(jù)。因此,使用get來獲取數(shù)據(jù)更有意義。