av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

JavaScript無阻塞加載性能優(yōu)化方案

Javascript在瀏覽器中的性能,可以說是前端開發(fā)者所要面對(duì)的最重要的可用性問題。

創(chuàng)新互聯(lián)建站公司2013年成立,先為疏勒等服務(wù)建站,疏勒等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為疏勒企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

在Yahoo的Yslow23條規(guī)則當(dāng)中,其中一條是將JS放在底部 。原因是,事實(shí)上,大多數(shù)瀏覽器使用單進(jìn)程處理UI和更新Javascript運(yùn)行等多個(gè)任務(wù),而同一時(shí)間只能有一個(gè)任務(wù)被執(zhí)行。Javascript運(yùn)行了多長時(shí)間,那么在瀏覽器空閑下來響應(yīng)用戶交互之前的等待時(shí)間就有多長。

從基本層面說,這意味著   

  •      

     
  •      
  •  
  • 當(dāng)瀏覽器遇到一個(gè)   

  •          
  •        
  •      
  •  
  • 此代碼展示了所推薦的  

    此 URL 調(diào)用 2.7.0 版本的 yahoo-min.js 和 event-min.js 文件。這些文件在服務(wù)器上是兩個(gè)分離的文件,但是 當(dāng)服務(wù)器收到此 URL 請(qǐng)求時(shí),兩個(gè)文件將被合并在一起返回給客戶端。通過這種方法,就不再需要兩個(gè)  

    一個(gè)帶有defer屬性的   

  •        
  •      
  •      
  •  
  • 如果瀏覽器不支持defer,那么彈出的對(duì)話框的順序是“defer”,“script”,“l(fā)oad”。

    如果瀏覽器支持defer,那么彈出的對(duì)話框的順序是“script”,“l(fā)oad”,“defer”。

    #p#

    Dynamic Script Elements 動(dòng)態(tài)腳本元素

    DOM允許我們使用Javascript動(dòng)態(tài)創(chuàng)建HTML的幾乎所有文檔內(nèi)容,一個(gè)新的   

  • loadScript("the-rest.js", function(){   
  •   Application.init();  
  • });   
  •  
  •  
  • 將此代碼放置在body的關(guān)閉標(biāo)簽之前。這樣做的好處是,首先,這樣確保Javascript運(yùn)行不會(huì)影響其他頁面的其他部分顯示。其次,當(dāng)?shù)诙糠諮avascript文件完成下載,所有應(yīng)用程序所必須的DOM已經(jīng)創(chuàng)建完畢,并做好被訪問的準(zhǔn)備,避免使用額外的事件處理(如window.onload)來得知頁面是否已經(jīng)準(zhǔn)備好了。

    另一個(gè)選擇是直接將loadScript()函數(shù)嵌入在頁面中,這可以減少一個(gè)http請(qǐng)求的開銷。例如:

     
     
    1.    
    2.   function loadScript(url, callback){  
    3.     var script = document.createElement ("script");  
    4.    script.type = "text/javascript";  
    5.      
    6.     if (script.readyState){ //IE script.onreadystatechange = function(){  
    7.       if (script.readyState == "loaded" || script.readyState == "complete"){  
    8.         script.onreadystatechange = null;   
    9.         callback();  
    10.       }   
    11.     };  
    12.   } else { //Others   
    13.    script.onload = function(){  
    14.      callback();   
    15.    };  
    16.   }  
    17.   script.src = url;   
    18.   document.getElementsByTagName("head")[0].appendChild(script);  
    19. }  
    20.  
    21. loadScript("the-rest.js", function(){  
    22.   Application.init();   
    23. });  
    24.  

    一旦頁面初始化代碼下載完成,還可以使用loadScript()函數(shù)加載頁面所需的額外功能函數(shù)。

    介紹一個(gè)通用的工具,Yahoo! Search的Ryan Grove創(chuàng)建了LazyLoad庫(參見:http://github.com/rgrove/lazyload/ )。LazyLoad是一個(gè)強(qiáng)大的loadScript()函數(shù)。LazyLoad精縮之后只有大約1.5KB。用法舉例如下:

    1  
    2 

    Summary 總結(jié)

    • 將所有