function loadScript(url, callback) { var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState) { //IE script.onreadystatechange = function () { if (script.readyState == "loaded" || script.readyState == "complete") { script.onreadystatechange = null; callback(); } }; } else { //Others script.onload = function () { callback(); }; } script.src = url; document.getElementsByTagName("head")[0].appendChild(script); }
上面的函數封裝了標準實現和 IE 實現所需的功能javascript
loadScript("script1.js", function(){ alert("File is loaded!"); });
您能夠在頁面中動態加載不少 JavaScript 文件,但要注意,瀏覽器不保證文件加載的順序。全部主流瀏覽器之中,只有 Firefox 和 Opera 保證腳本按照您指定的順序執行。其餘瀏覽器將按照服務器返回它們的次序下載並運行不一樣的代碼文件。html
動態腳本加載是非阻塞 JavaScript 下載中最經常使用的模式,由於它能夠跨瀏覽器,並且簡單易用。java
參考:JavaScript的性能優化:加載和執行web