天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

30個提高Web程序執行效率的好經驗

  1. 盡量避免使用DOM。當需要反復使用DOM時,先把對DOM的引用存到JavaScript本地變量里再使用。使用設置innerHTML的方法來替換document.createElement/appendChild()方法。
  2. eval()有問題,new Fuction()構造函數也是,盡量避免使用它們。
  3. 拒絕使用with語句。 它會導致當你引用這個變量時去額外的搜索這樣的一個命名空間,with里的代碼在編譯時期是完全未知的。
  4. 使用for()循環替代for…in循環。因為for…in循環在開始循環之前需要Script引擎創建一個含有所有可循環屬性的 List,需要多檢查一次。
  5. try-catch語句放在循環外面,不要放在循環里面,因為異常是很少發生的,放在外面避免每次都要執行它們。
  6. 甚至圣經里都提到過這個– 不要全局的。全局變量的生命周期貫穿整個腳本的生命周期,而本地變量的存在范圍隨著本地命名空間的銷毀而消失。當在函數或其它地方引用一個全局變量時,腳本引擎需要搜索整個全局命名空間。
  7. fullName += 'John'; fullName += 'Holdings';執行速度快于fullName += 'John'+'Holdings';
  8. 如果你需要把多個字符串連接起來,最好是把他們做成一個數組,然后調用join()方法實現這個操作。這種方式在生成HTML片段時尤其有效。
  9. 對于簡單的任務,最好使用基本操作方式來實現,而不是使用函數調用實現。例如val1 < val2 ? val1 : val2;執行速度快于Math.min(val1, val2);,類似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;
  10. 將函數的引用作為參數傳遞到setTimeout()setInterval()里優于將函數名作為字符串參數傳遞(硬編碼)。例如,setTimeout(”someFunc()”, 1000)執行效率慢于setTimeout(someFunc, 1000)
  11. 當進行遍歷操作時避免使用DOM操作。通過像getElementsByTagName()這種方法得到的DOM元素隊列都是動態的;有可能在你還沒有對它遍歷完成時,它已經被改變。這有可能導致死循環。
  12. 當你對對象的成員(屬性或方法)進行反復操作時,先存儲對它們的引用。例如var getTags = document.getElementsByTagName; getTags(’div’);
  13. 在任何的代碼段里,在局部變量范圍外存放一個這個局部變量的引用。例如
    function foo(arr){
    var a = ’something’;

    //變量‘a’對于下面的一段就是范圍外變量,這個變量的引用在很多情況下會有用處。
    for (var i = 0, j = a, loopLen = arr.length; i < loopLen; i++){
    //do something
    }
    }

  14. for(var i=0; i < someArray.length; i++) {…}的執行效率慢于for (var i=0, loopLen=someArray.length; i<loopLen; i++){…}
  15. 在HTTP頭信息里加入緩存控制過期和最大存活時間標記。
  16. 優化CSS。要使用<link>方式,而不要使用@import方式。請參考這個優秀的文檔http://www.slideshare.NET/stubbornella/object-oriented-css
  17. 使用CSS技術來優化圖片資源
  18. 用GZip方式壓縮.js 和.css 文件。如果你使用的是Apache,在 .htaccess 里設置壓縮方式,你的HTML, XML 和 JSON 也同時會被壓縮。
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-Javascript application/json
  19. 使用JavaScript壓縮工具。除了使用YUI和JSMin外,你還可以試一試Google Closure http://closure-compiler.appspot.com/home (感謝: James Westgate,一位讀者)
  20. 優化每個頁面上的各種資源,把它們拆分到各個子域上,這么它們就能夠并行下載。請參考http://yuiblog.com/blog/2007/04/11/performance-research-part-4/
  21. 將CSS樣式表放在頁面的最頂端,這樣能方便包括IE在內的瀏覽器進行解析。
  22. 盡量將DOM結構保持的越簡單越好。DOM的體積會影響相關的操作效率,像查找, 遍歷,DOM改動都有影響。document.getElementsByTagName(’*').length這個值越小越好。
  23. 注意你使用的選擇器。例如,如果你想獲取一個ul下的直接子元素,使用jQuery(”ul > li”)而不要使用jQuery(”ul li”)
  24. 當切換元素的可見性時(display),請記住:element.css({display:none})的速度快于element.hide()element.addClass(’myHiddenClass’)。 除非在一個循環里,我選擇element.addClass(’myHiddenClass’),這樣會使代碼更簡潔–不要使用 inline CSS 和 JavaScript。
  25. 當你使用完對DOM的引用變量后,要把它置為NULL。
  26. 使用AJAX時,GET的執行效率高于POST。所以要盡量使用 GET 方式。只是要注意一點,IE只允許你用GET傳送2K的數據。
  27. 小心使用腳本動畫。沒有硬件的支持,動畫會執行的很慢。盡量避免使用那些沒有實際價值的動畫效果。
  28. 如果你的background-image對于這個圖片的容器太小的話,請避免使用background-repeat。如果你的背景圖片需要來回填充很多次才能充滿背景,那么將background-repeat屬性設置成background-imagerepeat-xrepeat-y來達到填充背景的效果的做法是不明智的,這種填充方式的效率特別的低。你應該嘗試使用一個足夠大的圖片來做background-image并且使用background-repeat: no-repeat
  29. 布局時不要使用<table><table>在瀏覽器完全把它畫出來之前需要反復繪制好幾次。因為DOM中<table>是很少見的一種之后輸出的會影響之前輸出的顯示效果的元素。對于表格數據來說,你可以使用table-layout:fixed; 這是一種更有效的現實算法,根據CSS 2.1技術說明,這種寫法可以讓表格一行一行的輸出。
  30. 盡可能的使用原始JavaScript。限制JavaScript框架的使用。

  [英文出處]:Link

it知識庫30個提高Web程序執行效率的好經驗,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久欧洲AV无码精品色午夜麻豆 | 国产成人久久AV免费看澳门 | 在线欧美免费人成视频 | 亚洲AV无码乱码A片无码蜜桃 | 国产高清视频在线观看97 | 日韩伦理电影秋霞影院 | 中文有码中文字幕免费视频 | 果冻传媒在线观看高清完整免费 | 国产AV综合手机在线观看 | 熟女理发厅 | 久久人人爽人人片AV人成 | 亚洲精品国产国语 | 蜜桃AV色欲A片精品一区 | 欧美free嫩交hd | 99蜜桃在线观看免费视频网站 | 手机国产视频福利 | 国产午夜精品一区理论片飘花 | 黑人干日本美女 | 亚洲精品乱码久久久久久v 亚洲精品乱码电影在线观看 | 牛牛在线精品视频 | 探花口爆颜射乳交日韩 | xxnxx美女| 国产在线一区二区三区四区 | 97视频免费在线 | 久久人妻少妇嫩草AV無碼 | 97色伦图片97色伦图影院久久 | 色悠久久久久综合网小说 | 亚洲国产日韩a精品乱码 | 精品无码三级在线观看视频 | 野花香在线观看免费观看大全动漫 | 国内国外精品影片无人区 | 国产爱豆果冻传媒在线观看视频 | 欧美亚洲高清国产 | 有人有片的观看免费视频 | 三级色视频 | 奇米狠狠一区二区三区 | 国产午夜理论片YY8840Y | 叔叔 电影完整版免费观看韩国 | 好紧的小嫩嫩17p | 日韩AV成人无码久久精品老人 | 真人美女精美小穴 |