對于一個網(wǎng)站來說,這個原則也是適用的,即使你有豐富而有價值的內(nèi)容,但是顧客半天都進(jìn)不來,他們會慢慢失去耐心。
尤其是在這個信息爆炸的時代,人們的節(jié)奏總是很快。畢竟,網(wǎng)站的耐心是有限的。如果不優(yōu)化網(wǎng)站,會造成相當(dāng)數(shù)量的客戶流失,帶來不必要的損失。那么,優(yōu)化web前端性能的常用和實(shí)用方法有哪些呢?
CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))部署在各大運(yùn)營商的機(jī)房內(nèi)。當(dāng)用戶通過瀏覽器請求資源時,可以直接反饋給用戶,大大減輕了服務(wù)器數(shù)據(jù)中心的壓力。本質(zhì)上,CDN也是一種緩存。如果您的位置靠近CDN節(jié)點(diǎn),那么網(wǎng)站響應(yīng)速度也非常明顯。另外,CDN緩存的資源主要是靜態(tài)資源,比如靜態(tài)頁面、圖片、CSS和JS文件。CDN加速對于一些覆蓋范圍廣的網(wǎng)站是最有效的。比如阿里云CDN產(chǎn)品有280多個節(jié)點(diǎn),運(yùn)營商覆蓋范圍比較全面。
網(wǎng)頁的加載時間與HTTP請求密切相關(guān),而外部資源的加載速度則與主機(jī)服務(wù)提供商服務(wù)器架構(gòu)和分發(fā)位置有關(guān)。我們可以通過檢查網(wǎng)站上的冗余圖片、CSS、JavaScript和一些組件,并逐一改進(jìn)來減少一些HTTP請求。
顧名思義,預(yù)訪問就是在獲得一些必要的數(shù)據(jù)和資源之前,真正需要請求,以改善用戶的瀏覽體驗(yàn)。預(yù)訪問主要有三種方式:鏈路預(yù)采集、DNS預(yù)采集和預(yù)渲染。根據(jù)您想要使用的預(yù)取形式,您只需將以下標(biāo)記添加到站點(diǎn)的鏈接屬性:rel=prefetch、rel=DNS prefetch或rel=prerender。
壓縮HTML、CSS和JavaScript
在編寫代碼時,會有一些額外的空間,這將占用字節(jié)。使用一些壓縮工具可以有效地解決這個問題。值得注意的是,文件壓縮后,可讀性會變差,以后的維護(hù)也會變得困難。
一個高清晰度的圖像大約有幾兆字節(jié),而且很多時候我們并不需要這樣的圖像質(zhì)量。一般情況下,我們會選擇保存為高質(zhì)量的圖片,這樣可以有效降低圖片加載的壓力。像JPEG圖像一樣,它包含時間、地點(diǎn)、相機(jī)型號格式,更不用說我們需要什么了。
無法在客戶端中緩存Post請求。每個請求都需要發(fā)送到服務(wù)器進(jìn)行處理,每次都會返回一個狀態(tài)碼200。(可以在服務(wù)器端緩存數(shù)據(jù)以提高處理速度)
Get請求可以(默認(rèn)情況下)緩存在客戶機(jī)上。除非指定了不同的地址,否則具有相同地址的AJAX請求將不會在服務(wù)器上重復(fù)執(zhí)行,而是返回304。因此,在發(fā)出Ajax請求時,可以選擇盡可能多地使用get方法,這樣就可以使用客戶機(jī)的緩存來提高請求速度。