雖然沒(méi)有可以保證 Web 具備強(qiáng)大性能的詳細(xì)方案,但網(wǎng)站所有者可以使用以下比較好的做法來(lái)幫助提高網(wǎng)站速度和可靠性:
優(yōu)化圖像
由于圖像文件的大小往往大于 HTML 和 CSS 文件,因此,網(wǎng)站加載圖像所需的時(shí)間往往比較長(zhǎng)。幸運(yùn)的是,可以通過(guò)圖像優(yōu)化來(lái)縮短圖像加載時(shí)間,通常包括:降低圖像分辨率和尺寸,以及壓縮圖像文件本身。
限制 HTTP 請(qǐng)求的數(shù)量
大多數(shù)網(wǎng)頁(yè)都要求瀏覽器發(fā)出多個(gè) HTTP 請(qǐng)求,才能獲取頁(yè)面上的各種資產(chǎn)(包括圖像、腳本和 CSS 文件)。事實(shí)上,許多網(wǎng)頁(yè)都需要幾十個(gè)這樣的請(qǐng)求。每個(gè)請(qǐng)求都要往返于托管資源的服務(wù)器,這會(huì)增加網(wǎng)頁(yè)的整體加載時(shí)間。
由于存在這些潛在問(wèn)題,因此,應(yīng)該盡量減少每個(gè)頁(yè)面需要加載的資產(chǎn)總數(shù)。此外,速度測(cè)試有助于確定哪些 HTTP 請(qǐng)求花費(fèi)的時(shí)間比較多。
使用瀏覽器 HTTP 緩存
瀏覽器緩存是一個(gè)臨時(shí)存儲(chǔ)位置,瀏覽器將靜態(tài)文件的副本保存在其中,以便能夠更快速地加載最近訪問(wèn)過(guò)的網(wǎng)頁(yè)。開發(fā)人員可以指示瀏覽器緩存不經(jīng)常更改的網(wǎng)頁(yè)元素。瀏覽器緩存的說(shuō)明位于托管服務(wù)器的 HTTP 響應(yīng)的標(biāo)頭中。這顯著減少了服務(wù)器需要傳輸?shù)綖g覽器的數(shù)據(jù)量,從而縮短了用戶訪問(wèn)某些常用頁(yè)面所需的加載時(shí)間。
刪除不必要的 JavaScript 渲染阻塞
網(wǎng)頁(yè)可能會(huì)加載了不必要的代碼,然后才加載更重要的頁(yè)面內(nèi)容,如此一來(lái)增加整體加載時(shí)間。這種情況在大型網(wǎng)站上尤為常見(jiàn),因?yàn)樵S多網(wǎng)頁(yè)所有者都是單獨(dú)地添加代碼和內(nèi)容。網(wǎng)頁(yè)所有者可以使用 Web 性能工具,來(lái)識(shí)別性能不佳網(wǎng)頁(yè)上那些不必要的代碼。
限制使用外部腳本
對(duì)于需要從其他位置加載的任何腳本化網(wǎng)頁(yè)元素,例如外部評(píng)論系統(tǒng)、CTA 按鈕、CMS 插件或潛在客戶生成的彈出窗口,每次加載頁(yè)面時(shí)都需要重新加載這些元素。
根據(jù)腳本大小,這些腳本可能會(huì)降低網(wǎng)頁(yè)的加載速度,或?qū)е戮W(wǎng)頁(yè)無(wú)法一次性加載完畢,這被稱為“內(nèi)容跳轉(zhuǎn)”或“布局偏移”,尤其會(huì)讓移動(dòng)用戶感到沮喪,因?yàn)樗?她們往往需要滾動(dòng)頁(yè)面才能看到完整的網(wǎng)頁(yè)內(nèi)容。
限制使用重定向
重定向是指將訪問(wèn)者從一個(gè)網(wǎng)頁(yè)轉(zhuǎn)到另一個(gè)網(wǎng)頁(yè)。重定向會(huì)增加幾分之一秒的頁(yè)面加載時(shí)間,有時(shí)甚至需要幾秒鐘。重定向有時(shí)是不可避免的,但可能會(huì)被過(guò)度使用;而且在擁有多個(gè)網(wǎng)頁(yè)所有者的大型網(wǎng)站上,重定向可能會(huì)逐步增加頁(yè)面加載時(shí)間。網(wǎng)站所有者應(yīng)該制定明確的重定向使用指南,以及定期掃描重要的網(wǎng)頁(yè),檢查是否存在不必要的重定向。
極簡(jiǎn)化 CSS 和 JavaScript 文件
代碼更小化是指刪除計(jì)算機(jī)理解和執(zhí)行代碼時(shí)不需要的所有內(nèi)容,包括代碼注釋、空格和不必要的分號(hào)。這可以略微縮小 CSS 和 JavaScript 文件的體積,從而讓瀏覽器可以更快速地加載這些內(nèi)容,減少占用的帶寬。盡管代碼更小化通常只能帶來(lái)微不足道的性能提升,但它仍然是一種重要的比較好的做法。
使用有效的第三方服務(wù),實(shí)現(xiàn)重要的網(wǎng)站功能
托管:如果源服務(wù)器響應(yīng)請(qǐng)求的速度很慢,即使是設(shè)計(jì)比較好的網(wǎng)站,其網(wǎng)頁(yè)加載速度也會(huì)很慢。網(wǎng)站所有者應(yīng)該選擇平均響應(yīng)時(shí)間低于 200 毫秒,且擁有良好的可靠性記錄的服務(wù)器。
DNS:DNS 是一個(gè)域名轉(zhuǎn)化系統(tǒng)(將example.com 轉(zhuǎn)化為 IP 地址),這是頁(yè)面加載過(guò)程的重要組成部分。網(wǎng)站所有者應(yīng)該選用能夠快速且可靠地提供解析結(jié)果的 DNS 服務(wù),而不是依賴于 Web 主機(jī)的 DNS。
緩存:網(wǎng)站內(nèi)容距離請(qǐng)求者的位置越近,他們接收到相應(yīng)內(nèi)容的速度就越快。網(wǎng)站所有者應(yīng)該使用內(nèi)容交付網(wǎng)絡(luò) (CDN) 在全球多個(gè)地點(diǎn)緩存 Web 內(nèi)容,如此一來(lái),用戶的請(qǐng)求就不必跨越數(shù)百或數(shù)千英里(以及許多自治網(wǎng)絡(luò))的長(zhǎng)途傳輸才能到達(dá)網(wǎng)站的源服務(wù)器。
網(wǎng)絡(luò)安全:DDoS 攻擊、惡意機(jī)器人以及其他網(wǎng)絡(luò)攻擊,可能會(huì)降低網(wǎng)站性能。這個(gè)話題的涉及面過(guò)于寬泛,無(wú)法在此一一詳述,但網(wǎng)站所有者應(yīng)該選擇一家 Web 應(yīng)用程序安全提供商,既可以過(guò)濾惡意流量,同時(shí)不降低合法流量的速度。