熱線電話:13121318867

登錄
首頁大數據時代這三種JS異步加載的方式,你必須掌握!
這三種JS異步加載的方式,你必須掌握!
2020-07-16
收藏

通常情況下javascript是默認同步加載的,也就是所說的javascript的加載時阻塞的,后面的頁面要等到javascript加載結束后,才能再進行加載,這樣對于一些意義不是很大的javascript來說,如果放在頁頭會導致加載很慢的話,會嚴重影響用戶的體驗度的。

異步加載又叫非阻塞加載,也就是說瀏覽器在下載執行js的同時,還能繼續進行后續頁面的處理。舉個生活中的例子:同步:早上起床,先刷牙,然后燒水,等水燒開了再洗臉,之后再整理發型.異步:先刷牙,然后燒水,燒水同時整理發型,等水燒開后,再取剛燒開的水洗臉

異步加載通常有以下幾種方式:

1、defer,

只支持IEdefer 屬性規定是否對腳本執行進行延遲,需要等dom文檔全部解析完畢才會被執行。


<script type="text/javascript" src="demo.js" defer="defer"></script>

//行內js
<script type="text/javascript"  defer="defer">
console.log(“a”);
</script>

2、async:async屬性是HTML5中新增的異步支持,async 屬性規定一旦腳本可用,加載完畢就會執行,但是async只能加載外部js腳本,不能把js書寫在script標簽內(W3C標準方法)


<script type="text/javascript" src="demo.js" async="async"></script>



3.onload時的異步加載

創建script,插入到DOM中,加載完畢后callback

(function(){
	if(window.attachEvent){
    	window.attachEvent("load", asyncLoad);
    }else{
    	window.addEventListener("load", asyncLoad);
    }
    var asyncLoad = function(){
    	var ga = document.createElement('script'); 
        ga.type = 'text/javascript'; 
        ga.async = true; 
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
        var s = document.getElementsByTagName('script')[0]; 
        s.parentNode.insertBefore(ga, s);
    }
})();


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢