在開(kāi)發(fā)應(yīng)用程序時(shí),性能是最重要的問(wèn)題之一,所有軟件開(kāi)發(fā)人員都應(yīng)該監(jiān)控和改進(jìn)應(yīng)用程序每一層的性能。從數(shù)據(jù)庫(kù)到服務(wù)器端語(yǔ)言,出現(xiàn)性能問(wèn)題的時(shí)候很多,前端當(dāng)然也不例外。想要掌握前端更多的編程技能和知識(shí),建議參加web前端培訓(xùn),課程實(shí)時(shí)更新,緊跟企業(yè)需求,讓你輕松找到工作。
接下來(lái),讓我們看看如何通過(guò)七個(gè)實(shí)用技巧提高 Javascript 代碼的性能。
1. 刪除未使用的 Javascript 代碼
提高 Javascript 性能的一種可靠方法就是減少它。 無(wú)情地刪除未使用的代碼。
如果你檢測(cè)到給定的函數(shù)已過(guò)時(shí),請(qǐng)將其刪除,這將縮短下載時(shí)間,因?yàn)槲募笮p小,瀏覽器將花費(fèi)更少的時(shí)間來(lái)分析代碼。
2. 使用Gzip壓縮
想象一下,如果不是向?yàn)g覽器發(fā)送一個(gè)大文件,你的 Web
服務(wù)器可以發(fā)送一個(gè)壓縮文件以使其更輕,這樣,瀏覽器會(huì)更快地完成文件的下載。瀏覽器收到壓縮文件后,就可以提取該文件并照常使用,嗯,這正是 Gzip
的用途!
Gzip 是一個(gè)用于壓縮文件的應(yīng)用程序,大多數(shù) Web
服務(wù)器都支持它。當(dāng)你的服務(wù)器正確配置為提供壓縮內(nèi)容時(shí),它會(huì)在將響應(yīng)發(fā)送到瀏覽器之前壓縮響應(yīng)。使用 Gzip 不僅可以壓縮你的 Javascript
文件,還可以壓縮你的 HTML 和
CSS,這將提高你的應(yīng)用程序的性能。更多關(guān)于網(wǎng)站性能的相關(guān)知識(shí),可以考慮通過(guò)參加web前端培訓(xùn)來(lái)學(xué)習(xí),有專業(yè)老師指導(dǎo),有全面系統(tǒng)的課程,學(xué)起來(lái)又快又輕松。
3. 盡量減少 DOM 交互
DOM(動(dòng)態(tài)對(duì)象模型)是表示 Web 文檔結(jié)構(gòu)的接口。與 DOM 的交互在 Javascript
中顯然非常常見(jiàn),因?yàn)樵撜Z(yǔ)言的主要用例之一是操作頁(yè)面上的元素以創(chuàng)建比僅使用 HTML 可能實(shí)現(xiàn)的更豐富的用戶體驗(yàn)。問(wèn)題是 DOM
更改會(huì)導(dǎo)致性能下降,因?yàn)樗鼈儠?huì)導(dǎo)致瀏覽器回流。該怎么辦?
你不能簡(jiǎn)單地消除 DOM 交互——這首先會(huì)破壞使用 Javascript 的目的之一。你最好的做法是將 DOM
交互保持在最低限度。實(shí)現(xiàn)此目的的方法之一是批量處理 DOM 更改,這樣你就可以避免不必要的回流。
另一種有用的技術(shù)是緩存 DOM
元素,這意味著存儲(chǔ)對(duì)經(jīng)常訪問(wèn)的元素的引用,并在將來(lái)再次訪問(wèn)同一對(duì)象時(shí)使用該引用,通過(guò)這樣做,你可以獲得顯著的性能提升。
4. 切換到 HTTP/2
這個(gè)技巧不是特定于 Javascript 的指南,而是更多的通用 Web 性能技巧,并且很容易理解。 它只是說(shuō)你應(yīng)該使用
HTTP/2 而不是它的前身 HTTP/1.1。HTTP/2 使用多路復(fù)用,這意味著可以同時(shí)發(fā)送多個(gè)請(qǐng)求,它的前身 HTTP/1.1
要求在開(kāi)始下一個(gè)請(qǐng)求之前完成每個(gè)請(qǐng)求。 新版 HTTP
中的這一改進(jìn)和其他改進(jìn)將提高你網(wǎng)站的性能。在web前端培訓(xùn)學(xué)習(xí)中,有很多關(guān)于Javascript性能技巧的課程,理論知識(shí)+實(shí)踐項(xiàng)目,雙管齊下,更有利于學(xué)員加深對(duì)所學(xué)知識(shí)的理解和運(yùn)用,真正做到學(xué)以致用,從而將知識(shí)內(nèi)化成自身的能力。
5. 延遲加載不必要的 Javascript
延遲加載初始頁(yè)面加載不需要的任何內(nèi)容,頁(yè)面首次加載時(shí)并非所有功能都需要,例如,你可以延遲加載需要用戶執(zhí)行給定操作的函數(shù)。這樣你就可以避免加載
JS 代碼,這些代碼只會(huì)延遲頁(yè)面的初始加載和顯示,瀏覽器加載頁(yè)面后,你可以加載其他功能,以便在用戶需要時(shí)準(zhǔn)備就緒。
為此,你可以使用將 Javascript 分解為更小的文件并根據(jù)需要加載它們的方法。你還可以使用 async 或 defer
屬性。
6. 使用適用于其他語(yǔ)言的性能改進(jìn)策略
在使用 Javascript
時(shí),沒(méi)有什么可以阻止你應(yīng)用在其他語(yǔ)言中使用的性能優(yōu)化。你仍然希望避免在循環(huán)內(nèi)執(zhí)行昂貴的任務(wù)或在不需要時(shí)依賴遞歸。
此外,對(duì)已知問(wèn)題使用最先進(jìn)的算法。更好的是,在可用的情況下使用原生 Javascript
函數(shù),因?yàn)樗鼈冊(cè)诖蠖鄶?shù)情況下肯定會(huì)比本地代碼執(zhí)行得更好。
如今,正在開(kāi)發(fā)的大部分應(yīng)用程序都是 Web 應(yīng)用程序,由于 Javascript 是網(wǎng)絡(luò)語(yǔ)言,因此優(yōu)化 Javascript
性能是一項(xiàng)值得進(jìn)行的努力。想學(xué)習(xí)更多Javascript性能技巧,不妨考慮參加Web前端培訓(xùn),可以在短時(shí)間獲得快速提升,有效提高前端開(kāi)發(fā)工作效率。