我有一个用 JScript(不是 javascript)编写的函数,我需要暂停,直到某个全局变量变为真。在 ajax 响应后调用另一个函数时,全局变量更改为 true:
function(req, event, data) {
globalVariable = true;
}
当我尝试循环直到变量为真时:
while (globalVariable!= true) {
}
我进入了忙碌的等待状态,并且从未调用过回调函数。
有些人建议使用 WScript.wait() 但我的应用程序并不了解 WScript。SetTimeout() 也无济于事,因为它是异步调用并且不会暂停我的原始功能。
还有什么建议吗?
关于我的问题的更多信息:我希望我的脚本调用 2 个函数:
waitWhileAjaxIsNotCompleted();
doSomthingElse();
我希望waitWhileAjaxIsNotCompleted()单击提交 ajax 请求(由 A4J 实现)的按钮并在 ajax 完成时终止。为了让我知道 ajax 何时完成,我注册了一个函数作为侦听器,当 ajax 完成时将被唤醒。此函数更改 globalVariable 值。我的waitWhileAjaxIsNotComplete()进入一个无限循环,等待 glovalVariable 值改变。当它发生变化时(听者醒来后),我可以结束函数并继续使用doSomthingElse()函数。
你可以看到更多关于实现的信息:QTP Web extensibilty toolkit and ajax