提高JavaScript性能技巧,以獲得更快的網站
接下來,讓我們看看如何通過七個實用技巧提高 JavaScript 代碼的性能。
1. 刪除未使用的 JavaScript 代碼
提高 JavaScript 性能的一種可靠方法就是減少它。 無情地刪除未使用的代碼。 如果你檢測到給定的函數已過時,請將其刪除,這將縮短下載時間,因為文件大小將減小,瀏覽器將花費更少的時間來分析代碼。
2.使用Gzip壓縮
想象一下,如果不是向瀏覽器發(fā)送一個大文件,你的 Web 服務器可以發(fā)送一個壓縮文件以使其更輕,這樣,瀏覽器會更快地完成文件的下載。瀏覽器收到壓縮文件后,就可以提取該文件并照常使用,嗯,這正是 Gzip 的用途!
Gzip 是一個用于壓縮文件的應用程序,大多數 Web 服務器都支持它。當你的服務器正確配置為提供壓縮內容時,它會在將響應發(fā)送到瀏覽器之前壓縮響應。使用 Gzip 不僅可以壓縮你的 JavaScript 文件,還可以壓縮你的 HTML 和 CSS,這將提高你的應用程序的性能。
3. 盡量減少 DOM 交互
DOM(動態(tài)對象模型)是表示 Web 文檔結構的接口。與 DOM 的交互在 JavaScript 中顯然非常常見,因為該語言的主要用例之一是操作頁面上的元素以創(chuàng)建比僅使用 HTML 可能實現的更豐富的用戶體驗。問題是 DOM 更改會導致性能下降,因為它們會導致瀏覽器回流。該怎么辦?
你不能簡單地消除 DOM 交互——這首先會破壞使用 JavaScript 的目的之一。你最好的做法是將 DOM 交互保持在最低限度。實現此目的的方法之一是批量處理 DOM 更改,這樣你就可以避免不必要的回流。
另一種有用的技術是緩存 DOM 元素,這意味著存儲對經常訪問的元素的引用,并在將來再次訪問同一對象時使用該引用,通過這樣做,你可以獲得顯著的性能提升。
4. 切換到 HTTP/2
這個技巧不是特定于 JavaScript 的指南,而是更多的通用 Web 性能技巧,并且很容易理解。 它只是說你應該使用 HTTP/2 而不是它的前身 HTTP/1.1。HTTP/2 使用多路復用,這意味著可以同時發(fā)送多個請求,它的前身 HTTP/1.1 要求在開始下一個請求之前完成每個請求。 新版 HTTP 中的這一改進和其他改進將提高你網站的性能。
5. 延遲加載不必要的 JavaScript
延遲加載初始頁面加載不需要的任何內容,頁面首次加載時并非所有功能都需要,例如,你可以延遲加載需要用戶執(zhí)行給定操作的函數。這樣你就可以避免加載 JS 代碼,這些代碼只會延遲頁面的初始加載和顯示,瀏覽器加載頁面后,你可以加載其他功能,以便在用戶需要時準備就緒。
為此,你可以使用將 JavaScript 分解為更小的文件并根據需要加載它們的方法。你還可以使用 async 或 defer 屬性。
6. 使用適用于其他語言的性能改進策略
在使用 JavaScript 時,沒有什么可以阻止你應用在其他語言中使用的性能優(yōu)化。你仍然希望避免在循環(huán)內執(zhí)行昂貴的任務或在不需要時依賴遞歸。
此外,對已知問題使用最先進的算法。更好的是,在可用的情況下使用原生 JavaScript 函數,因為它們在大多數情況下肯定會比本地代碼執(zhí)行得更好。
如今,正在開發(fā)的大部分應用程序都是 Web 應用程序,由于 JavaScript 是網絡語言,因此優(yōu)化 JavaScript 性能是一項值得進行的努力。