javascript指令碼非同步載入介紹
本章節簡單介紹一下常見的幾種實現js指令碼非同步載入的方式,需要的朋友可以做一下參考。
一.XHR Eval():
從名稱基本就可以看出實現方式,也就是通過ajax方式非同步載入js程式碼,然後使用eval()執行。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var xhrObj = new XMLHttpRequest(); xhrObj.onreadystatechange = function () { if (xhrObj.readyState == 4 && 200 == xhrObj.status) { eval(xhrObj.responseText); } }; xhrObj.open("GET", "antzone.js", true); xhrObj.send("");
關於ajax的教程可以參閱ajax教程板塊。
二.XHR Injection:
其實也是利用ajax實現非同步載入,但是這裡會建立script標籤,將通過ajax載入的內容寫入<script>標籤之中。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var xhrObj = new XMLHttpRequest(); xhrObj.onreadystatechange = function () { if (xhrObj.readyState == 4) { var scriptElem = document.createElement("script"); document.getElementsByTagName("head")[0].appendChild(scriptElem); scriptElem.text = xhrObj.responseText; } }; xhrObj.open("GET", "antzone.js", true); xhrObj.send("");
三.Script DOM Element:
上面的方式都不可跨域的,因為ajax是不能跨域的。
這裡要介紹的方式是可以實現跨域,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var scriptElem = document.createElement("script"); scriptElem.src = "http://www.softwhy.com/antzone.js"; document.getElementByTagName("head")[0].appendChild(scriptElem);
四.Script Defer:
也就是使用script標籤自帶的defer屬性實現非同步效果。
具體可以參閱<script>標籤的defer屬性用法簡單介紹一章節。
當然還有其他的方式必須使用require.js等實現非同步載入。
相關文章
- 非阻塞載入指令碼指令碼
- 載入非同步指令碼的藝術非同步指令碼
- JS指令碼非同步載入淺析JS指令碼非同步
- 同步阻塞、同步非阻塞、多路複用的介紹
- javascript圖片預載入詳細介紹JavaScript
- javascript圖片預載入簡單介紹JavaScript
- 動態載入javascript指令碼程式碼例項JavaScript指令碼
- Oracle管理指令碼介紹Oracle指令碼
- Shell指令碼介紹與使用指令碼
- Javascript非同步載入詳解JavaScript非同步
- 用最短的javascript實現位址列載入指令碼JavaScript指令碼
- 高效能Javascript:指令碼的無阻塞載入策略JavaScript指令碼
- javascript方法過載簡單介紹JavaScript
- tornado原理介紹及非同步非阻塞實現方式非同步
- catalog.sql指令碼介紹SQL指令碼
- javascript非建構函式繼承簡單介紹JavaScript函式繼承
- 快速入門Redis呼叫Lua指令碼及使用場景介紹Redis指令碼
- JavaScript學習10:動態載入指令碼和樣式JavaScript指令碼
- javascript判斷iframe頁面載入完畢方法簡單介紹JavaScript
- meterpreter常見指令碼介紹指令碼
- Linux shell 指令碼基礎介紹Linux指令碼
- MySQL使用XtraBackup的shell指令碼介紹MySql指令碼
- TCL指令碼語言基礎介紹指令碼
- 使用jQuery載入js指令碼jQueryJS指令碼
- XSS跨站指令碼攻擊介紹指令碼
- javascript 非同步模組載入 簡易實現JavaScript非同步
- Flink 類載入機制介紹
- 預載入插頁式廣告介紹
- javascript程式碼規範簡單介紹JavaScript
- 很多語言轉換成javaScript,介紹,轉載JavaScript
- MySql主從同步介紹MySql主從同步
- Laravel 8 - 路由指令介紹Laravel路由
- docker之Dockerfile指令介紹Docker
- javascript程式碼效能優化簡單介紹JavaScript優化
- javascript事件控制程式碼簡單介紹JavaScript事件
- 如何除錯javascript程式碼簡單介紹除錯JavaScript
- JavaScript 語法介紹JavaScript
- JavaScript 輸出介紹JavaScript