全國服務熱線:15156887767
對于一個(ge)網站來(lai)說,這個(ge)原(yuan)則也是適用(yong)的,即使你有(you)豐(feng)富(fu)而有(you)價值的內容,但是顧客半(ban)天都進(jin)不來(lai),他(ta)們會慢慢失(shi)去耐心(xin)。
尤其是在這個信息(xi)爆炸的(de)(de)時代(dai),人們的(de)(de)節奏總是很快。畢竟,網站的(de)(de)耐(nai)心是有(you)限的(de)(de)。如果不(bu)優化網站,會造成(cheng)相當數量的(de)(de)客戶流失,帶來不(bu)必(bi)要的(de)(de)損失。那么,優化web前端性能的(de)(de)常用和(he)實用方法有(you)哪些呢?
CDN(內容分發網(wang)絡)部署在各大運營商(shang)的(de)(de)機房內。當(dang)用戶通過瀏覽器請求資(zi)源(yuan)時,可(ke)以直接反饋給(gei)用戶,大大減輕了服務器數據中心(xin)的(de)(de)壓力。本質上,CDN也是(shi)一種(zhong)緩存。如果您(nin)的(de)(de)位(wei)置靠近(jin)CDN節(jie)點,那(nei)么網(wang)站(zhan)響應速度也非常明顯。另外,CDN緩存的(de)(de)資(zi)源(yuan)主要(yao)是(shi)靜態(tai)(tai)資(zi)源(yuan),比(bi)如靜態(tai)(tai)頁面、圖片、CSS和(he)JS文件。CDN加(jia)速對于一些覆(fu)蓋(gai)范(fan)圍(wei)廣(guang)的(de)(de)網(wang)站(zhan)是(shi)*有(you)效的(de)(de)。比(bi)如阿里云CDN產品有(you)280多個(ge)節(jie)點,運營商(shang)覆(fu)蓋(gai)范(fan)圍(wei)比(bi)較全面。
網(wang)頁的加載時(shi)間與(yu)HTTP請(qing)求密切相關(guan)(guan),而外部資源的加載速度則(ze)與(yu)主機(ji)服務提(ti)供商服務器(qi)架構和(he)分發位(wei)置有關(guan)(guan)。我們可以通過檢查網(wang)站上(shang)的冗余圖片、CSS、JavaScript和(he)一(yi)些組件,并逐一(yi)改進來(lai)減少一(yi)些HTTP請(qing)求。
顧名思義,預(yu)(yu)訪問就是在獲得一(yi)些必要的(de)(de)數據和(he)資源(yuan)之前(qian),真正需要請求,以改善用(yong)戶的(de)(de)瀏覽體驗。預(yu)(yu)訪問主要有三種方(fang)式:鏈路預(yu)(yu)采集、DNS預(yu)(yu)采集和(he)預(yu)(yu)渲染。根據您想要使(shi)用(yong)的(de)(de)預(yu)(yu)取(qu)形式,您只需將以下標記添加到站點(dian)的(de)(de)鏈接屬(shu)性:rel=prefetch、rel=DNS prefetch或rel=prerender。
壓縮HTML、CSS和JavaScript
在編寫(xie)代碼時,會(hui)有一(yi)些(xie)額外的空間,這將占用字節。使用一(yi)些(xie)壓縮工具可以(yi)(yi)有效(xiao)地解(jie)決這個(ge)問題。值得(de)(de)注意(yi)的是,文件壓縮后,可讀性會(hui)變差,以(yi)(yi)后的維護也會(hui)變得(de)(de)困(kun)難。
一個高(gao)清晰度(du)的(de)圖(tu)像(xiang)大(da)約有(you)(you)幾兆字(zi)節(jie),而(er)且很(hen)多時候我們(men)并不需要(yao)這樣的(de)圖(tu)像(xiang)質量(liang)。一般情況下,我們(men)會選擇保存為高(gao)質量(liang)的(de)圖(tu)片,這樣可(ke)以有(you)(you)效降低圖(tu)片加載的(de)壓(ya)力。像(xiang)JPEG圖(tu)像(xiang)一樣,它(ta)包含時間、地(di)點、相機型號格(ge)式,更不用說我們(men)需要(yao)什(shen)么了。
無法在(zai)客戶端中緩(huan)存Post請求(qiu)。每(mei)個(ge)請求(qiu)都需(xu)要發送(song)到服(fu)務(wu)器進行(xing)處理(li),每(mei)次都會返(fan)回一(yi)個(ge)狀態碼200。(可以在(zai)服(fu)務(wu)器端緩(huan)存數據以提高處理(li)速度)
Get請求可(ke)(ke)以(yi)(默認情況下(xia))緩存在客戶機(ji)上。除非(fei)指定了不同(tong)(tong)的(de)地址,否則具有(you)相同(tong)(tong)地址的(de)AJAX請求將不會(hui)在服(fu)務器上重復(fu)執行,而是返回304。因(yin)此(ci),在發(fa)出(chu)Ajax請求時,可(ke)(ke)以(yi)選擇盡可(ke)(ke)能多(duo)地使(shi)用get方法,這樣就可(ke)(ke)以(yi)使(shi)用客戶機(ji)的(de)緩存來(lai)提高請求速度。