我正在给我的JavaScript的第一步,并试图了解它是如何工作的。 我遇到了代码执行顺序的问题。Javascript执行代码顺序
var Parsed = [[]]
var txtFile = new XMLHttpRequest();
alert("Trying to open file!");
txtFile.open("GET", "http://foo/f2/statistics/nServsDistrito.txt", false);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) { // Makes sure the document is ready to parse.
if (txtFile.status === 200) { // Makes sure it's found the file.
alert("File Open");
allText = txtFile.responseText;
Parsed = CSVToArray(allText, ",")
}
}
}
txtFile.send(null);
alert("Job Done");
问题是“作业完成”首先出现比“文件打开”。
但是该文件具有“作业完成”警报之后的代码所需的信息。 我改变了“获取”请求的异步部分,但没有奏效。
当文件打开并且检索到信息时,我能做些什么来支持所有代码? 当文件被打开和解析时,我可以使用readyState来停止代码吗?
感谢您的帮助。
更新:它现在可以工作,感谢所有。
XMLHttpRequest是**异步**,open将与您的函数并行执行(并且当您的函数完成其作业以保持您的代码“单线程”时,将执行onreadystatechanged)。 – 2013-05-02 09:09:51
将最后3个'}'移到最下面。 – C5H8NNaO4 2013-05-02 09:12:04
如果请求是同步的,那么事件处理程序的用途是什么?在'.send'和'alert(done)'之间移动事件处理程序中的代码' – 2013-05-02 09:14:23