在javascript中阻止"等待"功能?

nic*_*ckf 14 javascript ajax jquery sjax

作为我正在研究的Javascript项目的一部分,有一些同步的ajax调用(我猜这使它成为"sjax",但我离题了).我现在正在编写一个调试面板,它允许我通过包装来测试一些人工模拟的网络条件$.ajax.简单的事情:伪造500响应等,并使ajax调用需要更长的时间.

对于异步调用,它很简单.当真实响应返回时,添加一个setTimeout以使其在触发回调之前等待人工响应时间.但是,这显然不适用于同步调用,因为setTimeout它不是同步的.

那么,有没有办法让Javascript程序执行阻塞等待一段时间?

我唯一能想到的就是这样的事情:

function wait(ms) {
    var start = +(new Date());
    while (new Date() - start < ms);
}
Run Code Online (Sandbox Code Playgroud)

有更好的解决方案吗?

(另外,请假设有一个很好的理由阻止ajax调用... :-\)

epa*_*llo 5

不要在JavaScript级别上执行此操作.获取Fiddler等代理并设置AutoResponder以延迟一段时间的呼叫.