久久综合国产中文字幕,伊人久久大香线蕉一区,夜色福利少妇专区,亚洲日本va中文字带亚洲

    我要投稿 投訴建議

    JavaScript的優(yōu)化心得體會

    時間:2021-03-31 20:39:48 心得體會 我要投稿

    JavaScript的優(yōu)化心得體會

      性能對任何編程語言或系統(tǒng)來說都是一個很重要的問題,對JavaScript來說更是如此。

    JavaScript的優(yōu)化心得體會

      ● JavaScript代碼是從服務(wù)器原封不動地發(fā)送到客戶端的,代碼越大,下載所需的時間和帶寬越多。

      ● JavaScript在瀏覽器中解釋,而不是編譯好的。

      ● JavaScript代碼通過DOM API修改HTML頁面來與用戶交互。對JavaScript開發(fā)人員來說,這是功能強大的高級模型,但對DOM所做的每個簡單修改都將導致瀏覽器的頁面 渲染引擎執(zhí)行一系列復(fù)雜的操作。對DOM看似細微的修改常常導致需要占用比預(yù)期的多得多的CPU周期。

      諸如Gmail和基于Ajax的Yahoo! Mail(編寫本書時仍處于測試階段)等Web應(yīng)用程序都對JavaScript性能提出了挑戰(zhàn)。大量的人力被投入到這些Web應(yīng)用程序中,它們在最新的 計算機中可能運行順暢,但在較舊的計算機中可能反應(yīng)遲鈍,而在這些舊計算機中運行相應(yīng)的桌面應(yīng)用程序沒有任何問題。

      在下一小節(jié)中將介紹在JavaScript中最常見的兩個性能問題的解決方案。

      3.2.1 縮短JavaScript的下載時間

      大多數(shù)編程語言要么是編譯型的,要么在代碼安裝的計算機中運行,或兩者兼而有之。例如,使用諸如Python、PHP或Perl等腳本語言 時,代碼在執(zhí)行前不需要通過網(wǎng)絡(luò)傳輸,而在本地運行。諸如Java等其他語言的代碼被編譯成二進制文件,可在執(zhí)行前通過網(wǎng)絡(luò)傳輸。考慮到這種情況,采用了 大量措施以使二進制格式更加緊湊。

      JavaScript不屬于上述任何一種情況,其源代碼及用到的庫將被瀏覽器按原樣下載。因此,JavaScript代碼的`總體大小以及如何 將代碼打包為文件對頁面性能的影響巨大,這在剛開始編碼時可能無關(guān)緊要,但隨著編寫的代碼和使用的庫越來越多,很快將導致下載頁面使用的 JavaScript代碼時需要相當長的時間。

      為最大限度地縮短下載時間,應(yīng)這樣做:

      ● 除非每個頁面有不同的JavaScript,否則不要直接將JavaScript代碼放在HTML中,而在HTML中引用JavaScript文件。如果一定要在頁面中包含JavaScript,這樣的代碼不能太長。

      ● 減少在頁面中包含的JavaScript文件數(shù)。不需要走極端,將所有代碼放到一個文件中。包含不超過5個文件是可行的,但如果包含超過20個文件就要三 思而行。這些數(shù)字只是象征性的,如果這是個問題,應(yīng)進行測試看看在單個頁面中使用多少文件將影響網(wǎng)站的性能。

      ● 減少使用的庫。如果使用大量不同來源的庫,它們的有些代碼很可能是重復(fù)的。例如,每個庫都可能包含處理DOM事件的代碼,這是一種浪費,因為這些代碼可以 共享。選擇一個能夠解決大量問題且模塊化的庫,這樣可只包含所需的子集。使用來自一個主要庫的代碼還有其他好處:將減少依賴關(guān)系,從而降低不兼容的可能 性;升級到新版本更容易;通常來說,大型庫將獲得更大社區(qū)的支持,因此更新更頻繁,新特性更多。本章后面的內(nèi)容將更詳細地介紹JavaScript庫。

      很多庫都會發(fā)布其代碼的兩個版本:完整版和精簡版。

      ● 完整版適合用于閱讀和修改庫的代碼。它包含縮進和注釋,對開發(fā)人員來說可讀性更高。

      ● 精簡版適合用于部署網(wǎng)站。這種版本是基于完整版自動創(chuàng)建的:刪除了注釋和縮進;通常所有代碼位于一行中;有時候不暴露的變量被重命名為很短(而晦澀)的名稱。

      部署網(wǎng)站時,務(wù)必使用精簡版。根據(jù)自己編寫的代碼長度,可能要使用工具創(chuàng)建JavaScript文件的精簡版。這樣的工具有很多,其中包括開源(GPL)的ECMAScript Cruncher(ESC)。

      3.2.2 最大限度地減少DOM更新

      為完成任何有趣的工作,代碼必須修改DOM。然而,修改DOM的開銷非常高。顯然,為處理修改頁面內(nèi)容的DOM API調(diào)用,瀏覽器必須做大量工作。更令人驚訝的是,調(diào)用不修改頁面的方法(如注冊)可能非常慢。

      另外,請注意遍歷大量DOM對象的代碼,如遍歷documet.all以查找特定元素的代碼或document. getElementByName()。這些代碼的執(zhí)行時間將隨頁面的增大而增長。

    【JavaScript的優(yōu)化心得體會】相關(guān)文章:

    關(guān)于javascript的心得體會03-02

    Oracle優(yōu)化的心得體會03-31

    企業(yè)站優(yōu)化心得體會04-22

    優(yōu)化發(fā)展環(huán)境心得體會03-03

    優(yōu)化課堂教學設(shè)計心得體會03-14

    優(yōu)化經(jīng)濟的標語03-30

    優(yōu)化團體作文05-22

    優(yōu)化閱讀訓練指導04-21

    優(yōu)化情緒,釋放壓力03-21