如何模拟ajax请求的浏览器超时?

时间:2012-03-28 09:28:34

标签: ajax timeout

我正在尝试保护我的Web应用程序,以防止ajax请求超时。 要做到这一点,我显然需要模拟这样的超时。

从我在这里找到的: http://kb.mozillazine.org/Network.http.connect.timeout#Background firefox超时是系统相关的,我在此处发现:http://support.microsoft.com/kb/181050默认情况下,IE超时时间为60分钟。

所以我看到以下方法来模拟超时:

  • 让服务器等待60分钟(哎呀;))
  • 将IE超时时间更改为较小的值(需要更改注册表)
  • 在客户端和服务器之间配置代理并使其超时

上述所有方式对我来说都是一种矫枉过正。有没有人知道一种更简单的方法(可能在不同的浏览器上)? 谢谢!

4 个答案:

答案 0 :(得分:10)

简单地将ajax超时设置为1毫秒不是更容易。即使在localhost上,它也总是超时。这是我一直使用的方法。你没有用这种方法锻炼的唯一一点就是你的首选超时时间给最终用户的实际“感觉”(即3秒感觉很长,2秒太短)。但是,如果您只是想在错误响应下运行代码,这对我来说就是一个诀窍。

答案 1 :(得分:1)

在注册表中设置KeepAliveTimeout有什么危害 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ InternetSettings?

更多信息可在此处找到:
http://support.microsoft.com/kb/181050

答案 2 :(得分:1)

最终对我来说最简单的方法是通过在注册表HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet设置中设置ReceiveTimeout来模拟超时 如下所述:

http://support.microsoft.com/kb/181050

Darshan的解决方案也可能有效,但我刚刚测试了上述内容。谢谢大家的帮助!

答案 3 :(得分:0)

很简单,将超时设置为10.

像这样:xhr.timeout = 10;