如果我有一个JS函数如下;
function testFn()
{
x.ajaxMethod(param1,JScallBackFunction); //Please do not worry about the syntax..this just indicates an external method call
alert("Line after ajaxMethod");
}
ajaxMethod()
,可以说是在外部 Java 文件中定义的某种方法(因此它可以通过 DWR 或任何方式)返回一些数据...要点是它需要一些是时候执行这行代码了...
现在我的问题是下一行的警报何时会被触发(即 alert("Line after ajaxMethod");
)
- 它会等待这两件事完成吗(
ajaxMethod
执行以及JScallBackFunction
)
或者 - 它会立即触发,而无需等待上述 2 件事情中的任何一件完成?
此外,如果您能提供有关 JavaScript 方法流程执行的一般性指导,那就太好了。
最佳答案
这取决于。 Ajax 调用通常是异步的,这意味着在异步函数返回之前不会暂停代码的执行。因此警报将立即执行。
javascript 中的异步函数通常与 Ajax 和从远程服务器加载内容有关。如果您确实希望在加载该内容时强制 JavaScript 等待,那么您可以为 XMLHTTPRequest 对象设置一个标志。
这是一个值得阅读的好问题:When is JavaScript synchronous?
关于JavaScript 流程或执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6421801/