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