欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JS異步加載的三種實(shí)現(xiàn)方式

js加載的缺點(diǎn):加載工具方法沒(méi)必要阻塞文檔,過(guò)多js加載會(huì)影響頁(yè)面效率,一旦網(wǎng)速不好,那么整個(gè)網(wǎng)站將等待js加載而不進(jìn)行后續(xù)渲染等工作。 有些工具方法需要按需加載,用到再加載,不用不加載,。

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出汝南免費(fèi)做網(wǎng)站回饋大家。

默認(rèn)正常模式下下,JS是同步加載的,即優(yōu)先加載JS,只有當(dāng)JS文件下載完,dom和css才開始加載,當(dāng)某些時(shí)候我們需要JS異步加載,我們可以通過(guò)以下方式來(lái)設(shè)置異步加載,不同情況下選取不同方式即可

1.defer:defer

  1. JS異步下載,dom結(jié)構(gòu)解析完(標(biāo)簽 + 樣式(內(nèi)容不一定下載完))才異步執(zhí)行 
  2. 僅IE能用
  3. 內(nèi)部JS也能用該屬性
  4. 異步加載js不允許使用document.write,因?yàn)閐ocument.write會(huì)清除文檔流,js標(biāo)簽還未加載就會(huì)被清除
  5. document.write()可用于初始化頁(yè)面

2.(h6)async:async(asynchronous) ajax(asynchronous javascript and XML)

  1. JS異步加載,加載完畢后立刻異步執(zhí)行
  2. IE8及以下不兼容
  3. 內(nèi)部JS不能用該屬性

3.除了以上兩種方法,還有一種兼容自己封裝的異步加載方式,即動(dòng)態(tài)添加script標(biāo)簽也能實(shí)現(xiàn)異步加載。

function asyncLoaded(url,callBack){/*url為js的鏈接,callBack為url的js中的函數(shù)(該函數(shù)調(diào)用應(yīng)該寫到匿名函數(shù)中,如function(){console.log(div.getScrollOffset())})*/
  var script = document.createElement('script');
  script.type = 'text/javascript';
  /*if else 這幾句話必須要寫到這位置處,不能放最后,因?yàn)閕f中js加載中script.readyState存在好幾種狀態(tài),
  只有狀態(tài)改變‘readystatechange'事件才會(huì)觸發(fā),但現(xiàn)在瀏覽器加載速度很快,當(dāng)解析到該事件時(shí)JS有可能已經(jīng)加載完,
  所以事件根本不會(huì)觸發(fā),所以要寫到前面*/
  if(script.readystate){//兼容IE
    script.onreadystatechange = function() {//狀態(tài)改變事件才觸發(fā)
      if(script.readyState == 'loaded' || script.readyState == 'complete'){  
        callBack();
        script.onreadystatechange = null;    
      }
    }
  }else{
    script.onload = function(e){
      callBack();
    }
  }    
  script.src = url;
  document.body.appendChild(script);
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

本文名稱:JS異步加載的三種實(shí)現(xiàn)方式
網(wǎng)頁(yè)路徑:http://chinadenli.net/article24/giegje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站品牌網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站策劃網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司