異步加載JS的五種方式

方案一:<script>標籤的async="async"屬性(詳細參見:script標籤的async屬性)
點評:HTML5中新增的屬性,Chrome、FF、IE9&IE9+均支持(IE6~8不支持)。此外,這種方法不能保證腳本按順序執行。
方案二:<script>標籤的defer="defer"屬性
點評:兼容所有瀏覽器。此外,這種方法可以確保所有設置defer屬性的腳本按順序執行。
方案三:動態創建<script>標籤
示例:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
(function(){
var s = document.createElement_x('script');
s.type = 'text/javascript';
s.src = "http://code.jquery.com/jquery-1.7.2.min.js";
var tmp = document.getElementsByTagName_r('script')[0];
tmp.parentNode.insertBefore(s, tmp);
})();
</script>
</head>
<body>
<img src="http://xybtv.com/uploads/allimg/100601/48-100601162913.jpg" />
</body>
</html>
點評:兼容所有瀏覽器。
方案四:AJAX eval(使用AJAX得到腳本內容,然後通過eval_r(xmlhttp.responseText)來運行腳本)
點評:兼容所有瀏覽器。
方案五:iframe方式(這裏可以參照:iframe異步加載技術及性能 中關於Meboo的部分)
點評:兼容所有瀏覽器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章