最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中script標簽defer和async屬性的區(qū)別詳解

 更新時間:2016年08月12日 11:18:41   作者:NEUGodfrey  
這篇文章主要介紹了JS中script標簽defer和async屬性的區(qū)別詳解的相關資料,需要的朋友可以參考下

向html頁面中插入javascript代碼的主要方法就是通過script標簽。其中包括兩種形式,第一種直接在script標簽之間插入js代碼,第二種即是通過src屬性引入外部js文件。由于解釋器在解析執(zhí)行js代碼期間會阻塞頁面其余部分的渲染,對于存在大量js代碼的頁面來說會導致瀏覽器出現(xiàn)長時間的空白和延遲,為了避免這個問題,建議把全部的js引用放在</body>標簽之前。

  script標簽存在兩個屬性,defer和async,因此script標簽的使用分為三種情況:

  1.<script src="example.js"></script>

   沒有defer或async屬性,瀏覽器會立即加載并執(zhí)行相應的腳本。也就是說在渲染script標簽之后的文檔之前,不等待后續(xù)加載的文檔元素,讀到就開始加載和執(zhí)行,此舉會阻塞后續(xù)文檔的加載;

  2.<script async src="example.js"></script>

   有了async屬性,表示后續(xù)文檔的加載和渲染與js腳本的加載和執(zhí)行是并行進行的,即異步執(zhí)行;

  3.<script defer src="example.js"></script>

有了defer屬性,加載后續(xù)文檔的過程和js腳本的加載(此時僅加載不執(zhí)行)是并行進行的(異步),js腳本的執(zhí)行需要等到文檔所有元素解析完成之后,DOMContentLoaded事件觸發(fā)執(zhí)行之前。

  下圖可以直觀的看出三者之間的區(qū)別:

  其中藍色代表js腳本網絡加載時間,紅色代表js腳本執(zhí)行時間,綠色代表html解析。

  從圖中我們可以明確一下幾點:

  1.defer和async在網絡加載過程是一致的,都是異步執(zhí)行的;

  2.兩者的區(qū)別在于腳本加載完成之后何時執(zhí)行,可以看出defer更符合大多數(shù)場景對應用腳本加載和執(zhí)行的要求;

  3.如果存在多個有defer屬性的腳本,那么它們是按照加載順序執(zhí)行腳本的;而對于async,它的加載和執(zhí)行是緊緊挨著的,無論聲明順序如何,只要加載完成就立刻執(zhí)行,它對于應用腳本用處不大,因為它完全不考慮依賴。

小結:

defer 和 async 的共同點是都是可以并行加載JS文件,不會阻塞頁面的加載,不同點是 defer的加載完成之后,JS會等待整個頁面全部加載完成了再執(zhí)行,而async是加載完成之后,會馬上執(zhí)行JS,所以假如對JS的執(zhí)行有嚴格順序的話,那么建議用 defer加載。

以上所述是小編給大家介紹的JS中script標簽defer和async屬性的區(qū)別詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • javascript獲取dom的下一個節(jié)點方法

    javascript獲取dom的下一個節(jié)點方法

    這篇文章主要介紹了javascript獲取dom的下一個節(jié)點方法,實現(xiàn)在頁面點擊加減按鈕數(shù)字的累加,需要的朋友可以參考下
    2014-09-09
  • 如何正確理解javascript的模塊化

    如何正確理解javascript的模塊化

    模塊化在項目中十分的重要,一個復雜的項目肯定有很多相似的功能模塊,如果每次都需要重新編寫模塊肯定既費時又耗力。但是引用別人編寫模塊的前提是要有統(tǒng)一的“打開姿勢”,如果每個人有各自的寫法,那么肯定會亂套,下面介紹幾種JS的模塊化的規(guī)范。
    2017-03-03
  • 微信小程序基礎教程之worker線程的使用方法

    微信小程序基礎教程之worker線程的使用方法

    這篇文章主要給大家介紹了關于微信小程序基礎教程之worker線程的使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用微信小程序具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • 基于Turn.js 實現(xiàn)翻書效果實例解析

    基于Turn.js 實現(xiàn)翻書效果實例解析

    最近項目經理我個項目練練手,其項目需求是要實現(xiàn)翻書效果,看到這個需求后,我真是懵了,這咋整,我可是java出身的啊,這個問題真是難住我了,后來有同事的指導,問題順利解決,下面小編把學習心得分享,感興趣的朋友可以參考下
    2016-06-06
  • JavaScript禁止復制與粘貼的實現(xiàn)代碼

    JavaScript禁止復制與粘貼的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄狫avaScript禁止復制與粘貼的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript結合Canvas繪畫畫運動小球

    JavaScript結合Canvas繪畫畫運動小球

    這篇文章主要介紹了JavaScript結合Canvas畫運動小球,canvas被稱為畫布,可以結合javascript實現(xiàn)繪制各種圖形,制作各種炫酷的動畫效果,下面文章更多詳細內容介紹需要的小伙伴可以參考一下
    2022-03-03
  • JavaScript中reduce方法的用法及使用場景

    JavaScript中reduce方法的用法及使用場景

    reduce()方法對數(shù)組中的每個元素按序執(zhí)行一個提供的reducer函數(shù),每一次運行 reducer會將先前元素的計算結果作為參數(shù)傳入,最后將其結果匯總為單個返回值,今天我們就介紹一下reduce的幾種簡單使用場景,需要的朋友可以參考下
    2023-08-08
  • javascript實現(xiàn)移動端輪播圖

    javascript實現(xiàn)移動端輪播圖

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)移動端輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • JS實現(xiàn)漂亮的窗口拖拽效果(可改變大小、最大化、最小化、關閉)

    JS實現(xiàn)漂亮的窗口拖拽效果(可改變大小、最大化、最小化、關閉)

    這篇文章主要介紹了JS實現(xiàn)漂亮的窗口拖拽效果,具有可改變大小、最大化、最小化、關閉等功能,以完整實例形式較為詳細的分析了JavaScript操作窗口的大小改變、還原及關閉等功能的相關實現(xiàn)技巧,需要的朋友可以參考下
    2015-10-10
  • 詳解微信小程序之提高應用速度小技巧

    詳解微信小程序之提高應用速度小技巧

    這篇文章主要介紹了詳解微信小程序之提高應用速度小技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01

最新評論

九龙城区| 新密市| 邳州市| 临江市| 沂水县| 法库县| 当阳市| 昌黎县| 岳西县| 同德县| 满洲里市| 喜德县| 鹿泉市| 方正县| 荔波县| 廊坊市| 鄂尔多斯市| 朝阳县| 南宫市| 香河县| 华亭县| 铜川市| 横山县| 德阳市| 宝兴县| 巴塘县| 青田县| 界首市| 阿拉善右旗| 友谊县| 贵州省| 河西区| 思茅市| 汪清县| 旬邑县| 延津县| 东安县| 邳州市| 平原县| 城口县| 新巴尔虎右旗|