當用戶訪問網頁時,直觀的感覺是網頁內容的速度。我們需要做的優化工作主要是為了這個目的。那么如何提高頁面加載(或呈現)速度呢?一般來說,有三個方面:
1、代碼邏輯:優秀的代碼邏輯結構可以有效地減少呈現頁面(如虛擬DOM)時使用的內存和速度,這超出了本文的范圍。
2、SSR服務器渲染,也稱為“直接輸出”。在服務器端將個屏幕的所有內容呈現為HTML靜態代碼后,可以直接輸出到瀏覽器,有效地加快了用戶訪問站點時個屏幕的加載時間。但是,這方面不在本文的范圍內。
3、本文將討論提高靜態文件的加載速度,大致分為以下幾點:
減少靜態文件請求的數量,從而減少請求的數量(請求的成本高于移動頁面的網絡速度)
(1)代碼壓縮是常見的優化方法之一。
在平時開發時,JS腳本文件和CSS樣式文件中的代碼將基于特定的代碼規范(如javascript標準樣式),以提高項目的可維護性和團隊合作的效率。但是在項目發布到Internet上之后,客戶機(瀏覽器)會識別這些代碼。此時,不需要代碼命名規范和空間縮進。我們可以使用工具來混淆和壓縮這些代碼,以減小靜態文件的大小。這里我們選擇使用Webpack,稍后將介紹它。
(2)文件合并在NPM中非常流行。在前端項目開發中,經常使用很多第三方代碼庫,如jquery、axios、weixinJSsdk、lodash、bootstrap等。每個庫都有自己的腳本或樣式文件。古老的方法是,我們將標簽單獨引入這些庫中,從而在打開頁面時產生幾十個請求,這對于移動端來說是不可接受的。
GZIP
經過壓縮合并后,文件的大小和數量得到了客觀的減少。但是,一旦站點有了更多的業務邏輯,或者引入了更多的第三方庫,文件的大小對于移動端仍然不樂觀。
現在是gzip壓縮出現的時候了。~我們在Webpack的配置中添加了gzip壓縮配置。
(4)為什么cdn和cache使用cdn?
seo優化】從三個方面有效提升網頁加載速度" />
cdn是一個全球(或國內,特定于供應商)的分布式網絡,它可以更快地將網站的內容傳輸到服務范圍內的特定位置,并且通常該特定位置遠離實際的內容服務器。例如,在極端情況下,您的網站托管在愛爾蘭(海南),您的用戶訪問澳大利亞(MOHE)。此時,當您的用戶訪問您的網站時,延遲將非常大,將您的(靜態)數據放在澳大利亞(MOHE)的cdn上將大大提高用戶訪問該網站的體驗。如果沒有cdn服務,我們可以添加expires頭,減少dns查找,配置etag,并使ajax可緩存。
安全:
CSPWeb前端必須熟悉XSS安全漏洞。我們知道,javascript語句甚至CSS表達式都可能導致XSS攻擊,許多前端現在使用CSP策略來限制腳本源代碼防御。