页面上有两个javascript文件,两个来自不同的域。现在第二个文件在第一个文件之前加载,因为第二个javascript文件的服务器响应时间大于第一个javascript文件。第二个javascript文件取决于第一个javascript文件中设置的某些函数,因此它会抛出错误。
现在我的问题是:是否进行了javascript文件排序?即它们是按顺序执行的吗?如果是,那么为什么第二个javascript文件先执行并抛出错误
答案 0 :(得分:1)
如果你有脚本元素,它们将按照它们的顺序执行,除非你以编程方式加载它们或明确告诉它们与HTML5 async
属性异步加载(IE不支持低于10的版本) )。
脚本本身可能在其中具有异步行为,这可能导致它们以错误的顺序执行。
答案 1 :(得分:-1)
如果您通过AJAX加载两个脚本,则有两个函数(一个用于加载每个脚本),并在第一个加载时调用第二个函数。像这样(下面只是一个例子):
function loadfirstscript()
{
var http = new XMLHttpRequest();
var url = "get_data.php";
http.open("GET", url, true);
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
//do something here...
loadsecondscript() //Call the second script
}
}
http.send(params);
}
编辑:很抱歉,如果这不能解答您的问题,但我不太确定您的问题是否不能解答您的问题。