外部JavaScript渲染

时间:2012-06-20 07:25:05

标签: javascript html javascript-events

页面上有两个javascript文件,两个来自不同的域。现在第二个文件在第一个文件之前加载,因为第二个javascript文件的服务器响应时间大于第一个javascript文件。第二个javascript文件取决于第一个javascript文件中设置的某些函数,因此它会抛出错误。

现在我的问题是:是否进行了javascript文件排序?即它们是按顺序执行的吗?如果是,那么为什么第二个javascript文件先执行并抛出错误

2 个答案:

答案 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);
}

编辑:很抱歉,如果这不能解答您的问题,但我不太确定您的问题是否不能解答您的问题。