快速網站的簡單JavaScript性能優化技巧
如果你的網站速度很慢,并且認為頁面中嵌入的邏輯可能是原因,那么你可以使用以下五個 JavaScript 性能優化技巧來為用戶加快速度。
1.減少onReady事件的數量
一旦加載了 HTML 頁面并應用了所有 CSS 選擇器,就會觸發 onReady 事件。通常,開發人員會在此處放置初始化頁面組件和啟動各種 JavaScript 函數所需的邏輯。
然而,隨著時間的推移,開發人員傾向于向頁面添加越來越多的 onReady 事件。在故障排除例程中,通常會添加 onReady 事件來解決問題,但不會在解決問題時將其刪除。其他時候,與給定 Web 組件關聯的 HTML 會從頁面中刪除,但相應的 onReady 事件不會,這會導致多余的 JavaScript 不必要地消耗時鐘周期。此外,onReady 事件通常被編碼到一個通用的 JavaScript 文件中,該文件在每次頁面加載時都會運行,即使該函數僅在少數幾個頁面上需要。
2. 使用 let not var
當使用 var 關鍵字聲明 JavaScript 變量時,它在整個頁面的全局范圍內,并在頁面的整個生命周期中維護在內存中。但是,當使用 let 關鍵字聲明變量時,將應用塊范圍。因此,該變量會在塊執行后從內存中刪除。
如果 Ajax 響應、JSON 數據或 XML 等長文本字符串保存在全局變量中,瀏覽器會很快耗盡可尋址內存,這將嚴重影響頁面性能。一個非常容易實現的 JavaScript 性能優化技巧就是用 let 替換代碼中的每個 var。
3. 縮小合并
如果你的網頁鏈接到多個 JavaScript 庫,一個快速簡單的優化方法是將所有這些 JavaScript 庫合并到一個文件中。
當 JavaScript 加載時,它會阻止其他資源的下載,例如圖像、JSON 和 CSS 文件。并且由于瀏覽器允許與 Internet 建立的外部連接數量有限,如果你引用了七個或八個外部 JavaScript 文件,你可能會完全阻止下載可能用于呈現內容的其他資源顯示在首屏之上。通過將所有 JavaScript 組合到一個文件中,只使用一個外部連接,這允許瀏覽器同步下載其他資源。
另一種減小 JavaScript 文件大小的簡單方法是對它們應用最小化程序,例如 JSCompress。最小化器會去除空格和不必要的文本元素,從而減小 JavaScript 文件的大小。反過來,這優化了 JavaScript 文件的下載時間。將多個 JavaScript 文件合并為一個以減少傳出網絡連接的數量。
4. 不要重新發明 JavaScript API
JavaScript 有幾個內置的 API,允許對集合或數組進行高效的迭代。使用 Array 的原型構造函數,你可以使用類似 lambda 的語法將函數應用于列表中的所有項目或執行操作,例如排序或反轉。
這些內置方法非常高效,并由瀏覽器進行了優化。但是,一些開發人員并不了解這些方法,而是編寫迭代循環來達到相同的目的。
無需自己重新發明這些函數式方法。這不僅浪費時間,而且還引入了不必要的 JavaScript 性能問題。
5. 在服務器上執行密集邏輯
將計算操作卸載到客戶端的能力是客戶端計算的一個關鍵優勢,但客戶端渲染也可能會給功率不足的手持設備帶來巨大的負載。
例如,如果渲染圖表或電子表格需要大量計算,并且該計算導致 JavaScript 性能問題,請考慮將其移動到服務器并簡單地將內容作為預先計算的 HTML 交付給客戶端。瀏覽器在靜態 HTML 顯示上比在復雜的、內存密集型的 JavaScript 函數運行上要高效得多。
JavaScript 是在最終用戶訪問你的網站時更好地參與和保留他們的關鍵,但是開發人員應該始終意識到涉及 JavaScript 時對性能的影響。注意這五個 JavaScript 性能優化技巧,以幫助你的 Web 開發團隊避免一些常見的網站性能陷阱。