我有一个用JScript编写的函数(不是JavaScript),我需要将其挂起,直到某个全局变量变为true。 当另一个函数在ajax响应之后被调用时,该全局变量将更改为true:
function(req, event, data) {
globalVariable = true;
}
当我尝试循环直到变量为真时:
while (globalVariable!= true) {
}
我进入了一个繁忙的等待状态,但回调函数从未被调用。
有人建议使用WScript.wait(),但我的应用程序似乎不知道WScript。 SetTimeout()也无法帮助,因为它是异步调用,不会挂起我的原始函数。
还有其他建议吗?
关于我的问题,以下是更多信息:
我想让我的脚本调用2个函数:
waitWhileAjaxIsNotCompleted();
doSomthingElse();
我希望waitWhileAjaxIsNotCompleted()能够点击提交 ajax 请求的按钮 (由 A4J 实现),并在 ajax 完成后终止。为了知道何时 ajax 执行完成,我注册了一个函数作为监听器,当 ajax 执行完成时会被唤醒。此函数会改变全局变量的值。
我的 waitWhileAjaxIsNotComplete() 进入一个无限循环,等待全局变量的值发生变化。当它发生变化 (监听器被唤醒后),我就可以结束这个函数,并继续执行 doSomthingElse() 函数。
你可以在以下链接中查看更多实现细节:QTP Web extensibilty toolkit and ajax。