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

無(wú)阻塞加載js,防止因js加載不了影響頁(yè)面顯示的問(wèn)題

 更新時(shí)間:2016年12月18日 11:32:06   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇無(wú)阻塞加載js,防止因js加載不了影響頁(yè)面顯示的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)

瀏覽器加載靜態(tài)資源和js的方式都是線(xiàn)性加載,所以一般情況可以將js放到</body>前,防止UI線(xiàn)程的阻塞。

而某些時(shí)候我們既希望js在整個(gè)網(wǎng)頁(yè)的頭部就加載,又擔(dān)心js阻塞導(dǎo)致網(wǎng)站加載緩慢,就可以用到無(wú)阻塞加載js技術(shù)。

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

DOM允許我們使用Javascript動(dòng)態(tài)創(chuàng)建HTML的幾乎所有文檔內(nèi)容,一個(gè)新的<script>元素可以非常容易的通過(guò)標(biāo)準(zhǔn)DOM創(chuàng)建:

var script = document.createElement ("script"); 
script.type = "text/javascript"; 
script.src = "file1.js";  
document.body.appendChild(script); 

新的<script>元素加載file1.js源文件。此文件當(dāng)元素添加到頁(yè)面后立刻開(kāi)始下載。此技術(shù)的重點(diǎn)在于:無(wú)論在何處啟動(dòng)下載,文件的下載和運(yùn)行都不會(huì)阻塞其他頁(yè)面處理過(guò)程。

當(dāng)文件使用動(dòng)態(tài)腳本節(jié)點(diǎn)下載時(shí),返回的代碼通常立即執(zhí)行(除了Firefox和Opera,它們將等待此前的所有動(dòng)態(tài)腳本節(jié)點(diǎn)執(zhí)行完畢)。

大多數(shù)情況下,我們希望調(diào)用一個(gè)函數(shù)就可以實(shí)現(xiàn)Javascript文件的動(dòng)態(tài)下載。下面的函數(shù)封裝實(shí)現(xiàn)了標(biāo)準(zhǔn)實(shí)現(xiàn)和IE實(shí)現(xiàn):

function loadScript(url, callback){ 
  var script = document.createElement ("script") ; 
  script.type = "text/javascript"; 
    
  if (script.readyState){ //IE 
    script.onreadystatechange = function(){ 
     if (script.readyState == "loaded" || script.readyState == "complete"){ 
      script.onreadystatechange = null; 
      callback();  
     } 
    }; 
   }  
   else { //Others 
    script.onload = function(){ callback(); 
   };  
  } 
  script.src = url; 
  document.getElementsByTagName("head")[0].appendChild(script);  
 } 
 
loadScript("file1.js", function(){ //調(diào)用 
  alert("File is loaded!");  
}); 

此函數(shù)接受兩個(gè)參數(shù):Javascript文件的Url和一個(gè)當(dāng)Javascript接收完成時(shí)觸發(fā)的回調(diào)函數(shù)。屬性檢查用于決定監(jiān)視哪種事件。最后一步src屬性,并將javascript文件添加到head。

動(dòng)態(tài)腳本加載是非阻塞Javascript下載中最常用的模式,因?yàn)樗梢钥鐬g覽器,而且簡(jiǎn)單易用。

以上這篇無(wú)阻塞加載js,防止因js加載不了影響頁(yè)面顯示的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談javascript中for in 和 for each in的區(qū)別

    淺談javascript中for in 和 for each in的區(qū)別

    兩個(gè)的作用都用來(lái)遍歷對(duì)象,但為什么有了for in語(yǔ)句了還要for each in語(yǔ)句呢,后來(lái)看了下for each in開(kāi)發(fā)的文檔,for each in是作為E4X標(biāo)準(zhǔn)的一部分在javascript 1.6中發(fā)布的,而且它不是ECMAScript標(biāo)準(zhǔn)的一部分
    2015-04-04
  • 微信小程序?qū)崿F(xiàn)全局搜索代碼高亮的示例

    微信小程序?qū)崿F(xiàn)全局搜索代碼高亮的示例

    本篇文章主要介紹了微信小程序?qū)崿F(xiàn)全局搜索代碼高亮的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 用jscript實(shí)現(xiàn)列出安裝的軟件列表

    用jscript實(shí)現(xiàn)列出安裝的軟件列表

    用jscript實(shí)現(xiàn)列出安裝的軟件列表...
    2007-06-06
  • 微信小程序?qū)崿F(xiàn)滑動(dòng)刪除

    微信小程序?qū)崿F(xiàn)滑動(dòng)刪除

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)滑動(dòng)刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 原生JS實(shí)現(xiàn)登錄框郵箱提示

    原生JS實(shí)現(xiàn)登錄框郵箱提示

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)登錄框郵箱提示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • js獲取客戶(hù)端操作系統(tǒng)類(lèi)型的方法【測(cè)試可用】

    js獲取客戶(hù)端操作系統(tǒng)類(lèi)型的方法【測(cè)試可用】

    這篇文章主要介紹了js獲取客戶(hù)端操作系統(tǒng)類(lèi)型的方法,可有效的判斷常見(jiàn)操作系統(tǒng)的類(lèi)型,包括Windows、MacOS、Unix及Linux等,涉及javascript頁(yè)面navigator.userAgent屬性操作技巧,需要的朋友可以參考下
    2016-05-05
  • JavaScript獲取數(shù)組最后一個(gè)元素的3種方法以及性能

    JavaScript獲取數(shù)組最后一個(gè)元素的3種方法以及性能

    在開(kāi)發(fā)過(guò)程中,我們常常需要得到j(luò)s數(shù)組的最后一個(gè)數(shù)組元素,下面這篇文章主要給大家介紹了關(guān)于JavaScript獲取數(shù)組最后一個(gè)元素的3種方法以及性能,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 微信小程序接入vant Weapp組件的詳細(xì)步驟

    微信小程序接入vant Weapp組件的詳細(xì)步驟

    這篇文章主要介紹了微信小程序接入vant Weapp組件的詳細(xì)步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 首頁(yè)圖片漂浮效果示例代碼

    首頁(yè)圖片漂浮效果示例代碼

    圖片漂浮效果想必大家都有見(jiàn)到過(guò)吧,一般都是通過(guò)js來(lái)實(shí)現(xiàn)的,下面為大家介紹的這個(gè)示例也是通過(guò)js實(shí)現(xiàn)的
    2014-06-06
  • Nautil 中使用雙向數(shù)據(jù)綁定的實(shí)現(xiàn)

    Nautil 中使用雙向數(shù)據(jù)綁定的實(shí)現(xiàn)

    這篇文章主要介紹了Nautil 中使用雙向數(shù)據(jù)綁定的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論