創建dynamic.js文件,表示動態加載的js文件,裏面的內容爲:html
function dynamicJS() {ajax
alert("加載完畢");緩存
} 服務器
以下方法中的html頁面和dynamic.js文件在一個目錄下。 app
一. document.write()異步
問題,1,document.write會重寫頁面,在點擊初始化加載按鈕後,頁面重繪致使原有的內容丟失,上述代碼中註釋掉的」加載完畢「按鈕會丟失,所以須要在init函數中使用document.write的方式創建一個按鈕。ide
問題2,異步加載,直接調用dynamicJS方法會報錯,由於js文件未加載完畢,而在其後的代碼已經開始運行。函數
綜上,此種方法不推薦。二. 動態改變已有script的src屬性測試
這個代碼運行起來有問題,點擊」加載完畢「按鈕仍是報"Uncaught ReferenceError: dynamicJS is not defined"ui
問題:異步加載問題
三. 動態建立script元素
問題:相對於第二種方式,不須要在頁面上一開始就添加script元素,但一樣存在異步加載問題。
前三種方法共同點:異步執行,加載這些腳本的同時,主頁面的腳本繼續運行。若此時調用未加載完成的JS中的代碼,會報錯。
四. XMLHttpRequest/ActiveXObject 同步加載
參考連接:http://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/03/06/2946277.html