欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

30個(gè)提高Web程序執(zhí)行效率的好經(jīng)驗(yàn)分享

 更新時(shí)間:2011年10月28日 15:09:48   作者:  
30個(gè)提高Web程序執(zhí)行效率的好經(jīng)驗(yàn)分享,需要的朋友可以參考下。
  1. 盡量避免使用DOM。當(dāng)需要反復(fù)使用DOM時(shí),先把對(duì)DOM的引用存到JavaScript本地變量里再使用。使用設(shè)置innerHTML的方法來替換document.createElement/appendChild()方 法。
  2. eval()有問題,new Fuction()構(gòu)造函數(shù)也是,盡量避免使用它們。
  3. 拒絕使用with語(yǔ)句。 它會(huì)導(dǎo)致當(dāng)你引用這個(gè)變量時(shí)去額外的搜索這樣的一個(gè)命名空間,with里的代碼在編譯時(shí)期是完全未知的。
  4. 使用for()循環(huán)替代for…in循 環(huán)。因?yàn)?SPAN>for…in循環(huán)在開始循環(huán)之前需要Script引擎創(chuàng)建一個(gè)含有所有可循環(huán)屬性的 List,需要多檢查一次。
  5. try-catch語(yǔ)句放在循環(huán)外面,不要放在循環(huán)里面,因?yàn)楫惓J呛苌侔l(fā)生的,放在外面避免每次都要執(zhí)行 它們。
  6. 甚至圣經(jīng)里都提到過這個(gè) – 不要全局的。全局變量的生命周期貫穿整個(gè)腳本的生命周期,而本地變量的存在范圍隨著本地命名空間的銷毀而消失。當(dāng)在函數(shù)或其它地方引用一個(gè)全局變量時(shí),腳 本引擎需要搜索整個(gè)全局命名空間。
  7. fullName += 'John'; fullName += 'Holdings';執(zhí)行速度快于fullName += 'John' + 'Holdings';
  8. 如果你需要把多個(gè)字符串連接起來,最好是把他們做成一個(gè)數(shù)組,然后調(diào)用join()方法實(shí)現(xiàn)這個(gè)操作。這種方式在生成HTML片段時(shí)尤其 有效。
  9. 對(duì)于簡(jiǎn)單的任務(wù),最好使用基本操作方式來實(shí)現(xiàn),而不是使用函數(shù)調(diào)用實(shí)現(xiàn)。例如val1 < val2 ? val1 : val2;執(zhí)行速度快于Math.min(val1, val2);,類似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;
  10. 將函數(shù)的引用作為參數(shù)傳遞到setTimeout()setInterval()里優(yōu)于將函數(shù)名作為字符串參數(shù)傳遞(硬編碼)。例如,setTimeout(“someFunc()”, 1000)執(zhí)行效率慢于setTimeout(someFunc, 1000)
  11. 當(dāng)進(jìn)行遍歷操作時(shí)避免使用DOM操作。通過像getElementsByTagName()這 種方法得到的DOM元素隊(duì)列都是動(dòng)態(tài)的;有可能在你還沒有對(duì)它遍歷完成時(shí),它已經(jīng)被改變。這有可能導(dǎo)致死循環(huán)。
  12. 當(dāng)你對(duì)對(duì)象的成員(屬性或方法)進(jìn)行反復(fù)操作時(shí),先存儲(chǔ)對(duì)它們的引用。例如var getTags = document.getElementsByTagName; getTags(‘div');
  13. 在任何的代碼段里,在局部變量范圍外存放一個(gè)這個(gè)局部變量的引用。例如
    function foo(arr) {
    var a = ‘something';

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

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

相關(guān)文章

  • web高性能開發(fā)系列隨筆 BearRui(AK-47)版

    web高性能開發(fā)系列隨筆 BearRui(AK-47)版

    在BlogJava里寫了一些關(guān)于高性能WEB開發(fā)的隨筆,因?yàn)槎际歉岸思夹g(shù)相關(guān)(html,http,js,css等),大家可以參考下。非常值得參考。
    2010-05-05
  • 使用sublime Text3過程中的各種問題的解決

    使用sublime Text3過程中的各種問題的解決

    本文主要介紹了使用sublime Text3過程中的各種問題的解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解idea切換git賬號(hào)的兩個(gè)方法

    詳解idea切換git賬號(hào)的兩個(gè)方法

    這篇文章主要介紹了詳解idea切換git賬號(hào)的兩個(gè)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • PHP VBS JS 函數(shù) 對(duì)照表

    PHP VBS JS 函數(shù) 對(duì)照表

    PHP VBS JS 函數(shù) 對(duì)照表,大家可以參考下。
    2010-03-03
  • 如何解決vscode中ESLint和prettier沖突問題

    如何解決vscode中ESLint和prettier沖突問題

    這篇文章主要給大家介紹了關(guān)于如何解決vscode中ESLint和prettier沖突問題的相關(guān)資料,ESLint和Prettier之間可能會(huì)發(fā)生沖突,因?yàn)樗鼈兌际怯糜诖a規(guī)范化的工具,但它們的規(guī)則和格式化方式可能不同,需要的朋友可以參考下
    2023-11-11
  • git如何使用Sourcetree合并多次本地提交記錄

    git如何使用Sourcetree合并多次本地提交記錄

    這篇文章主要介紹了git如何使用Sourcetree合并多次本地提交記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 在Infopath中實(shí)現(xiàn)數(shù)據(jù)有效性驗(yàn)證的三種方法

    在Infopath中實(shí)現(xiàn)數(shù)據(jù)有效性驗(yàn)證的三種方法

    Infopath是微軟Office辦公軟件家族中的成員之一,它主要的功能是面向客戶端收集XML數(shù)據(jù),并按照預(yù)期定義的格式生成XML文件,它以可視化表單的形式收集數(shù)據(jù),并且支持C#編程接口以及外部數(shù)據(jù)源等。
    2010-06-06
  • IDEA2019.3在Plugins中搜索不到translation的解決

    IDEA2019.3在Plugins中搜索不到translation的解決

    這篇文章主要介紹了IDEA2019.3在Plugins中搜索不到translation的解決,文中通過圖文的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Git 教程之工作區(qū)、暫存區(qū)和版本庫(kù)詳解

    Git 教程之工作區(qū)、暫存區(qū)和版本庫(kù)詳解

    本文主要介紹Git 工作區(qū)、暫存區(qū)和版本庫(kù)的知識(shí),這里整理了詳細(xì)的資料,有需要的小伙伴可以參考下
    2016-09-09
  • HTML5 移動(dòng)頁(yè)面自適應(yīng)手機(jī)屏幕寬度詳解

    HTML5 移動(dòng)頁(yè)面自適應(yīng)手機(jī)屏幕寬度詳解

    這篇文章主要介紹了HTML5 移動(dòng)頁(yè)面自適應(yīng)手機(jī)屏幕寬度的相關(guān)資料,需要的朋友可以參考下
    2016-09-09

最新評(píng)論