创建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