寡妇张开腿让黑人通爽,吃瓜黑料,欧美激情内射喷水高潮,亚洲精品午夜国产va久久成人

我要投稿 投訴建議

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

時(shí)間:2021-03-31 20:39:48 心得體會(huì) 我要投稿

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

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

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

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

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

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

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

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

  3.2.1 縮短JavaScript的下載時(shí)間

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

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

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

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

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

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

  很多庫都會(huì)發(fā)布其代碼的兩個(gè)版本:完整版和精簡(jiǎn)版。

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

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

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

  3.2.2 最大限度地減少DOM更新

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

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

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

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

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

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

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

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

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

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

優(yōu)化閱讀訓(xùn)練指導(dǎo)04-21

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

新建县| 吕梁市| 霞浦县| 银川市| 渭南市| 永修县| 齐齐哈尔市| 塔河县| 花莲市| 弥勒县| 开平市| 澄江县| 原阳县| 临武县| 石门县| 伊春市| 台南市| 襄城县| 湟中县| 黄石市| 临海市| 花莲市| 丹棱县| 扶沟县| 楚雄市| 亚东县| 泰和县| 诸城市| 专栏| 榆树市| 阿坝县| 定兴县| 东兰县| 广安市| 攀枝花市| 梁平县| 巴东县| 临海市| 策勒县| 郯城县| 福贡县|