精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳細javaScript代碼的優化

開發 前端
本文介紹的是javaScript代碼的優化,主要從六個方面給大家介紹的。希望對你有幫助,一起來看。

javaScript是一門解釋性的語言、它不像java、C#等程序設計語言、由編譯器先進行編譯再運行、而是直接下載到用戶的客戶端進行執行。因此代碼本身的優劣就直接決定了代碼下載的速度以及執行的效率。

1、減緩代碼下載時間:

Web瀏覽器下載的是javaScript的源碼、其中包含的長變量名、注釋、空格和換行等多余字符大大減緩了代碼下載的時間。這些字符對于團隊編寫時十分有效、但在最后工程完成上傳到服務器時、應當將它們全部刪除。例如:

  1. function showMeTheMoney(){ if(!money){ return false; }else{ ... } } 

可優化成:

  1. function showMeTheMoney(){if(!money){return false;}else{...}} 

這樣、優化后就節約了25個字節、倘若是一個大的javaScript工程、將節省出非常大的空間、不但提高了用戶的下載速度、也減輕了服務器的壓力。相信這樣的代碼大家見過不少、很多優秀的js插件源碼都這么干!

另外、對于布爾型的值true和false、true都可以用1來代替,而false可以用0來代替。對于true節省了3個字節、而false則節省了4個字節、例如:

  1. var bSearch = false
  2. for(var i=0;i<aChoices.length&&!bSearch;i++){ if(aChoices[i] == vValue) bSearch = true ; } 

替換成:

  1. var bSearch = 0;
  2.  for(var i=0;i<aChoices.length&&!bSearch;i++){ if(aChoices[i] == vValue) bSearch = 1 ; } 

替換了布爾值之后、代碼的執行效率、結果都相同、但節省了7個字節。

代碼中常常會出現檢測某個值是否為有效值的語句、而很多條件非的判斷就判斷某個變量是否為"undefined"、"null"、或者"false"、例如:

  1. if(myValue != undefined){ //... } if(myValue !=null){ //... } if(myValue != false){ //... } 

這些雖然都正確、但采用邏輯非操作符"!"也可以有同樣的效果、代碼如下:

  1. if(!myValue){ //... } 

這樣的替換也可以節省一部分字節、而且不太影響代碼的可讀性。類型的代碼優化還有將數組定義時的 new Array()直接用"[]"代替、對象定義時的 new Object()用"{}"代替等、例如:

  1. var myArray = new Array(); var myArray = []; var myObject = new Object(); var myObject = {}; 

顯然、第二行和第四行的代碼較為精簡、而且也很容易理解。

另外、在編寫代碼時往往為了提高可讀性、函數名稱、變量名稱使用了很長的英文單詞、同時也大大增加了代碼的長度、例如:

  1. function AddThreeVarsTogether(firstVar,secondVar,thirdVar){ return (firstVar+secondVar+thirdVar); } 

可優化成:

  1. function A(a,b,c){return (a+b+c);} 

注意:在進行變量名稱替換時、必須十分小心、尤其不推薦使用文本編輯器的"查找"、"替換"功能、因為編輯器不能很好地區分變量名稱或者其他代碼。例如、希望將變量"tion"全部替換成"io"、很可能導致關鍵字"function"也被破壞。

對于上面說的這些減少代碼體積的方法、有一些很實用的小工具可以自動完成類似的工作、例如ECMAScript Cruncher、JSMin、Online JavaScript Compressor等。

2、合理聲明變量

減少代碼的體積僅僅只能使得用戶下載的速度變快、但執行程序的速度并沒有改變。要提高代碼執行的效果、還得在各方面做調整。

在瀏覽器中、JavaScript默認的變量范圍是window對象、也就是全局變量。全局變量只有在瀏覽器關閉才釋放。而JavaScript也有局部變量、通常在function中執行完畢就會立即被釋放。因此在函數體中要盡可能使用var關鍵字來聲明變量:

  1. function First(){ a = "" ; //直接使用變量 } function Second(){ alert(a); } First(); Second(); 

這樣、變量"a"就成為了全局變量、直到頁面關閉時才會被銷毀、浪費了不必要的資源、如果在"a"的前面加上"var"、這樣"a"就成為了當前function的局部變量。在執行完First()便立即被銷毀。因此、在函數體中、如果不是特別需要的全局變量、都應當使用"var"進行聲明、從而節省系統資源。

3、使用內置函數縮短編譯時間

只要可能、應當盡量使用JavaScript的內置函數。因為這些內置的屬性、方法都是用類似C、C++之類的言語編譯過的、運行起來比實時編譯的JavaScript快很多。例如計算指數函數、可以自己編寫:

  1. <html>   
  2. <head>   
  3. <base href="<%=basePath%>">   
  4. <title>內置函數</title>   
  5. <meta http-equiv="pragma" content="no-cache">   
  6. <meta http-equiv="cache-control" content="no-cache">   
  7. <meta http-equiv="expires" content="0">   
  8. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">   
  9. <meta http-equiv="description" content="This is my page">   
  10. <script type="text/javascript">   
  11. function myPower(iNum,n){   
  12. var iResult = iNum ;   
  13. for(var i=0;i<n;i++)   
  14. iResult *= iNum ;   
  15. return iResult;   
  16. }  
  17. var myDate1 = new Date();   
  18. for(var i=0;i<150000;i++){   
  19. myPower(7,8); //自定義方法 }   
  20. var myDate2 = new Date();  
  21. document.write(myDate2 - myDate1);   
  22. document.write("<br/>");   
  23. myDate1 = new Date();   
  24. for(var i=0;i<150000;i++){   
  25. Math.pow(7,8); //采用系統內置方法   
  26. }   
  27. myDate2 = new Date();   
  28. document.write(myDate2 - myDate1);   
  29. </script>   
  30. </head>   
  31. <body>   
  32. </body>   
  33. </html>  

我運行的結果是、自定義方法用了15、內置方法用了1(不同的計算機運行速度會有差別)、這樣就能看出、系統內置的方法要快很多。

4、合理書寫if語句。

if語句恐怕是所有代碼中使用最頻繁的、然而很可惜的是它的執行效率并不是很高。在用if語句和多個else語句時、一定要把最有可能的情況放在第一個、然后是可能性第二的、依此類推。例如預計某個數值在0~100之間出現的概率最大、則可以這樣安排代碼:

  1. if(iNum>0&&iNum <100){   
  2. alert("在0和100之間");   
  3. }  
  4. else if(iNum>99&&iNum<200)  
  5. {   
  6. alert("在100和200之間");   
  7. }  
  8. else if(iNum>199&&iNum<300){   
  9. alert("在200和300之間");   
  10. }else 
  11. {   
  12. alert("小于等于0或者大于等于300");   

總是將出現概率最多的情況放在前面、這樣就減少了進行多次測試后才能遇到正確條件的情況。當然也要盡可能減少使用else if 語句、例如上面的代碼還可以進一步優化成如下代碼:

  1. if(iNum>0){   
  2. if(iNum<100){   
  3. alert("在0和100之間");   
  4. }  
  5. else{   
  6. if(iNum<200){  
  7.  alert("在100和200之間");   
  8. }  
  9. elseif(iNum<300){   
  10. alert("在200和300之間");   
  11. }else{   
  12. alert("大于等于300");   
  13. } } } }  
  14. else{ alert("小于等于0");   

上面的代碼看起來比較復雜、但因為考慮了很多代碼潛在的判斷問題、執行問題、因此執行速度要較前面的代碼快。

另外、通常當超過兩種情況時、最好能夠使用switch語句。經常用switch語句代替if語句、可令執行速度快甚至10倍。另外、由于case語句可以使用任何類型、也大大方便switch語句的編寫。

5、最小化語句數量

腳本找哦個的語句越少執行的時間就越短、而且代碼的體積也會相應減少。例如使用var定義變量時可以一次定義多個、代碼如下:

  1. var iNum = 365;   
  2. var sColor = "yellow";   
  3. var aMyNum = [8,7,12,3] ;   
  4. var oMyDate = new Date(); 

上面的多個定義可以用var關鍵字一次性定義、代碼如下:

  1. var iNum = 365, sColor = "yellow" , aMyNum = [8,7,12,3],oMyDate = new Date() ; 

同樣在很多迭代運算的時候、也應該盡可能減少代碼量、如下兩行代碼:

  1. var sCar = aCars[i]; i++; 

可優化成:

  1. var sCar = aCars[i++]; 

6、節約使用DOM

JavaScript對DOM的處理可能是最耗費時間的操作之一。每次JavaScript對DOM的操作都會改變頁面的表現、并重新渲染整個頁面、從而有明顯的時間消耗。比較快捷的方法就是盡可能不在頁面進行DOM操作、如下例中為ul添加了10個條目。

  1. var oUl = document.getElementById("ulItem");   
  2. for(var i=0;i<10;i++){   
  3. var oLi = document.createElement("li");   
  4. oUl.appendChild(oLi);   
  5. oLi.appendChild(document.createTextNode("Item "+i));   

以上代碼在循環中調用oUl.appendChild(oLi)、每次執行這條語句后、瀏覽器就會重新渲染頁面、其次給列表添加文本節點oLi.appendChild(document.createTextNode("Item "+i))、這也會造成頁面被重新渲染。因此每次運行都會造成兩次重新渲染頁面、共20次。

通常應當盡可能減少DOM的操作、將列表項目在添加文本節點之后在添加、并合理地使用createDocumentFragment()、代碼如下:

  1. var oUl = document.getElementById("ulItem");   
  2. var oTemp = document.createDocumentFragment();   
  3. for(var i=0;i<10;i++){ var oLi = document.createElement("li");   
  4. oLi.appendChild(document.createTextNode("Item "+i));   
  5. oTemp.appendChild(oLi);   
  6. }   
  7. oUl.appendChild(oTemp);  

到這,關于JAVASCRIPT的優化就給大家介紹完了。希望對你有幫助。

 

責任編輯:于鐵 來源: 互聯網
相關推薦

2024-09-14 11:23:19

2022-08-31 12:15:09

JavaScript代碼優化

2011-03-01 16:08:46

2022-09-04 15:40:39

JavaScrip狀態模式軟件

2016-05-06 10:02:33

CSSJavaScript工具

2020-11-24 11:16:06

JavaScript

2023-10-10 10:57:12

JavaScript代碼優化

2010-01-13 13:27:00

C++優化

2011-06-20 09:34:17

優化函數

2011-06-21 14:25:44

JavaScriptcookie

2017-07-26 16:00:21

Windows 10Windows優化提速

2011-07-21 14:15:08

java

2011-07-21 13:51:38

java

2020-12-17 07:52:38

JavaScript

2009-06-17 16:01:28

2022-09-26 09:01:23

JavaScript淺拷貝深拷貝

2009-06-10 22:00:57

JavaScript腳

2009-06-11 17:15:23

JavaScript性

2019-05-21 09:40:47

Elasticsear高性能 API

2010-05-12 12:25:12

MySQL性能優化
點贊
收藏

51CTO技術棧公眾號

国产内射老熟女aaaa| 97视频在线观看播放| 伊人影院综合在线| www免费在线观看| av午夜精品一区二区三区| 欧美最猛性xxxxx免费| 青青青视频在线免费观看| av一级亚洲| 欧美亚洲综合色| 妞干网视频在线观看| 久久经典视频| 国产精品伊人色| 日韩av不卡电影| 国产成人综合在线视频| 伊人春色精品| 欧美一区三区四区| 亚洲人成无码www久久久| 污污的网站在线免费观看| 久久综合狠狠综合久久综合88 | 亚洲欧美精品久久| 老牛精品亚洲成av人片| 宅男噜噜噜66一区二区66| jizzjizz国产精品喷水| 高清全集视频免费在线| 久久精品免费在线观看| 国产精品日韩高清| 国产精品日韩无码| 日本欧美韩国一区三区| 2019亚洲男人天堂| 久久久无码精品亚洲国产| 日韩欧美一区二区三区免费看| 亚洲成人中文字幕| 被黑人猛躁10次高潮视频| 日韩高清在线| 色综合久久六月婷婷中文字幕| 91成人综合网| 在线观看三级视频| 国产精品第四页| 视频一区亚洲| 国产永久免费高清在线观看| 91亚洲男人天堂| 国产偷国产偷亚洲高清97cao| 一级片在线观看视频| 日本一区中文字幕| 国产激情综合五月久久| 久久精品一二区| 亚洲精品乱码| 91国产高清在线| 国产性xxxx高清| 一道本一区二区| 欧美亚洲日本黄色| 成年人免费高清视频| 亚洲美女视频在线免费观看| 欧美高清激情视频| 国产一级久久久| 在线欧美一区| 91tv亚洲精品香蕉国产一区7ujn| 成人黄色片视频| 精品99在线观看| 亚洲国产一区二区三区在线播放| 日韩一区二区精品视频| 女同久久另类69精品国产| 99久久综合狠狠综合久久aⅴ| 色香阁99久久精品久久久| av手机在线播放| 三级电影一区| 欧美成人精品xxx| 免费视频一二三区| 日韩视频三区| 国产成人精品日本亚洲| 中文字幕在线观看第二页| 欧美aaaaa成人免费观看视频| 国产日本欧美一区| 国产麻豆精品一区| 成人av在线资源网| 久久综合一区| 秋霞a级毛片在线看| 亚洲女厕所小便bbb| 丰满的少妇愉情hd高清果冻传媒 | 最新日韩av在线| 国产经典久久久| 9lporm自拍视频区在线| 色哟哟国产精品免费观看| 性生活免费在线观看| 精品91福利视频| 亚洲国产精品99| 99久久99久久精品免费看小说.| 亚洲精品国产成人影院| 久久久噜噜噜久久久| 亚洲自拍一区在线观看| 国产最新精品免费| 久久久久久久久久久久久9999| 川上优的av在线一区二区| 亚洲女厕所小便bbb| 日韩精品一区二区三区久久| 999久久久国产999久久久| 日韩精品视频在线观看网址| 国产精品一区二区亚洲| 激情久久久久| 成人性生交大片免费观看嘿嘿视频| 高h放荡受浪受bl| 欧美韩日一区二区三区四区| 日韩一级特黄毛片| 亚洲a∨精品一区二区三区导航| 日韩欧美成人午夜| 性欧美一区二区| 激情丁香综合| 91牛牛免费视频| 黄色软件在线| 亚洲第一av色| 一本之道在线视频| 欧美精品一二| 97在线观看免费| 国产三级三级在线观看| 久久久久88色偷偷免费| 欧美一级欧美一级| 97精品资源在线观看| 亚洲午夜精品视频| 日韩精品视频免费播放| 国产麻豆欧美日韩一区| 亚洲开发第一视频在线播放| 悠悠资源网亚洲青| 亚洲精品一区二区三区99| 亚洲欧美精品久久| 毛片不卡一区二区| 日本在线视频一区| 综合另类专区| 亚洲精品久久久久中文字幕欢迎你 | 男人亚洲天堂| 亚洲区免费影片| 尤物视频在线观看国产| 国产91富婆露脸刺激对白| 中文字幕日韩精品一区二区| av在线日韩| 亚洲人成网站999久久久综合| 日韩精品一卡二卡| jizz一区二区| 国产二级片在线观看| 狠狠一区二区三区| 欧美精品电影免费在线观看| 亚洲成a人片77777精品| 亚洲免费在线视频一区 二区| 男女视频在线看| 精品久久久久久久久久久aⅴ| 日韩av电影在线免费播放| 姝姝窝人体www聚色窝| 亚洲国产综合91精品麻豆| 中文字幕无人区二| 欧美视频成人| 精品国产乱码久久久久久88av| 第一av在线| 亚洲精品在线三区| 日韩欧美激情视频| 97久久精品人人爽人人爽蜜臀| 欧美久久久久久久久久久久久| h视频久久久| 欧美亚洲激情视频| 国产综合视频一区二区三区免费| 一本一道久久a久久精品 | 精品人妻一区二区三区麻豆91 | 亚洲美女激情视频| 国产美女www爽爽爽| 国产精品免费人成网站| 日本高清一区二区视频| 你懂的成人av| 国产欧美亚洲日本| 国产高清不卡| 日韩在线视频中文字幕| www.五月激情| 日韩欧美黄色动漫| 欧美性受xxxx黑人| 国产麻豆视频一区二区| www.av中文字幕| 国产欧美日韩在线一区二区| 国产精品欧美久久久| 伦xxxx在线| 精品国产乱码久久久久久夜甘婷婷 | 男人久久精品| 欧美三级视频在线观看| 日本中文在线视频| 91亚洲午夜精品久久久久久| 中文字幕一区二区三区四区在线视频| 久久久久久免费视频| 国产精品成人观看视频免费| 你懂得影院夜精品a| 久久国产天堂福利天堂| 深夜影院在线观看| 欧美精品久久99久久在免费线| 麻豆国产尤物av尤物在线观看| 91在线看国产| 91丨九色丨蝌蚪| 亚洲精品婷婷| 伊人av成人| 久久综合社区| 91色中文字幕| 亚洲精品中文字幕| 色综合男人天堂| 国产三区四区在线观看| 欧美岛国在线观看| 中文字幕在线观看你懂的| 亚洲va欧美va天堂v国产综合| 91资源在线播放| 成人av第一页| 91欧美一区二区三区| 午夜在线精品| 久久精品无码中文字幕| 日韩在线不卡| 欧洲国产精品| 清纯唯美亚洲经典中文字幕| 国产免费亚洲高清| 综合久久2023| 午夜欧美不卡精品aaaaa| 很黄的网站在线观看| 国产午夜精品一区理论片飘花| 欧美性猛交 xxxx| 欧美蜜桃一区二区三区 | 欧美一级淫片007| 小泽玛利亚一区二区三区视频| 亚洲国产综合色| 黄色一级片在线| 中文字幕一区日韩精品欧美| 国产精品毛片一区二区| 99精品国产热久久91蜜凸| 中文字幕avav| 国产一区二区伦理| www.com久久久| 蜜臀精品一区二区三区在线观看| 国产视频九色蝌蚪| 99re国产精品| 免费看毛片的网址| 精品9999| 韩日视频在线观看| 国产精品vip| 超级碰在线观看| 欧美日本在线| 狠狠精品干练久久久无码中文字幕| 欧美好骚综合网| 亚洲第一页在线视频| 日韩电影在线视频| 亚洲人成人77777线观看| 国产一区二区三区日韩精品| 欧美高清视频一区| 国产在线观看91一区二区三区| 免费国产一区| 国产亚洲一区二区三区不卡| 区一区二区三区中文字幕| 婷婷精品在线观看| 欧美一区二区三区在线免费观看| 亚洲精品中文字幕99999| 老牛影视免费一区二区| 国产a久久精品一区二区三区| 欧美一区1区三区3区公司| 精品一区二区三区在线| 一区二区三区四区| 亚洲最新av| av在线com| 国产日本精品| caopor在线视频| 美女精品自拍一二三四| 中国黄色片一级| 国产成人av一区| 捆绑裸体绳奴bdsm亚洲| 久久久久久亚洲综合| 亚洲a∨无码无在线观看| 亚洲色图在线播放| 久久久久久久久久久久久久免费看 | 国产精品69毛片高清亚洲| 性猛交╳xxx乱大交| 91在线小视频| 精品无码国产污污污免费网站| 欧美国产禁国产网站cc| 波多野结衣爱爱视频| 亚洲国产日韩精品| 欧美a视频在线观看| 欧美日韩激情一区二区| 精品国产无码AV| 亚洲精品白浆高清久久久久久| 成人影视在线播放| 欧美成人午夜免费视在线看片| 99riav视频在线观看| 国产精品久久久久久久app| 精品中文字幕一区二区三区| 国产精品国产亚洲精品看不卡15 | 一区不卡字幕| 在线不卡亚洲| 午夜两性免费视频| 不卡一区二区三区四区| 日韩av片在线| 亚洲国产成人精品视频| 国产无遮挡又黄又爽又色视频| 91精品国产一区二区人妖| 天堂在线免费av| 久久精品国产2020观看福利| 欧美久久天堂| 亚洲一区二区在线| 国产成人1区| 日韩精品在线观看av| 蜜臀久久久99精品久久久久久| 亚洲综合伊人久久| 国产亚洲欧美在线| 国产一级在线视频| 欧美三电影在线| 婷婷av一区二区三区| 久久精品国产久精国产思思| 蜜桃视频在线观看播放| 91在线观看欧美日韩| 精品理论电影| 成人综合视频在线| 国产精品一区二区久激情瑜伽| 摸摸摸bbb毛毛毛片| 午夜精品一区二区三区免费视频| 国产精品爽爽久久| 一区二区三区www| 免费毛片b在线观看| 成人情视频高清免费观看电影| 日韩三级在线| 成人免费毛片播放| 97国产精品videossex| 极品盗摄国产盗摄合集| 欧美精品 国产精品| 国产色在线 com| 情事1991在线| 四虎5151久久欧美毛片| 91免费黄视频| 国产91精品免费| www欧美com| 3d成人h动漫网站入口| 97人人在线| 国产成人精品免费久久久久| 亚洲深夜福利在线观看| 久久黄色片视频| 国v精品久久久网| 国产波霸爆乳一区二区| 欧美一区二区三区爱爱| 久久bbxx| 成人午夜黄色影院| 99精品综合| 国产又黄又猛的视频| 国产精品国产三级国产普通话蜜臀| 成人h动漫精品一区二区下载| 日韩h在线观看| 午夜不卡影院| 欧美一区1区三区3区公司| 爽爽淫人综合网网站| 国产人妻大战黑人20p| 色噜噜狠狠色综合中国| 九色网友自拍视频手机在线| 欧洲成人性视频| 久久99国内| 欧美男女交配视频| 亚洲私人影院在线观看| 国产99999| 欧美激情视频在线| 国产精品调教视频| 国产女女做受ⅹxx高潮| 久久久www成人免费毛片麻豆| 中文字幕国产在线观看| 国产午夜精品免费一区二区三区 | 模特精品在线| 亚洲 小说 欧美 激情 另类| 欧日韩精品视频| 日本成人网址| 99在线视频免费观看| 亚洲黄色av| 国精产品一区一区三区免费视频| 色88888久久久久久影院野外| 午夜在线观看视频| 98国产高清一区| 国产一区二区高清| 无码少妇精品一区二区免费动态| 欧美日本在线看| 啪啪免费视频一区| 欧美极品jizzhd欧美| 蜜臀av一级做a爰片久久| 久久久久久视频| 亚洲二区中文字幕| 成人黄页网站视频| 日本精品福利视频| 国产亚洲一区二区三区四区| 91在线你懂的| 69av成年福利视频| 色综合久久网| 中文字幕影片免费在线观看| 欧美日韩免费不卡视频一区二区三区 | 国产亚洲女人久久久久毛片| 亚洲影视一区二区| 性日韩欧美在线视频| 成人久久综合| 激情av中文字幕| 欧美自拍偷拍一区| 色噜噜狠狠狠综合欧洲色8| 欧美二区在线| 国产麻豆视频一区二区| 中文字幕一区二区人妻视频| 欧美大尺度激情区在线播放| 少妇精品久久久一区二区三区| 日本高清免费在线视频| 丰满岳妇乱一区二区三区| 97超碰资源站在线观看| 日本欧美色综合网站免费|