2016-01-06 22 views
0

时,我有一个回报率API做这可能需要一段时间(2〜5分钟)分析操作。当反应前2分钟来如何防止重试GET请求的浏览器挂于响应

,一切工作正常。浏览器挂起2分钟,一旦得到它就显示结果。

现在根据HTTP 1.1规范,现代浏览器将自动等待一定量的时间之后重试。因此,如果计算时间过长(比如3分钟或4分钟),API将从同一客户端获得新的请求并重新开始。

我如何防止重试的浏览器?我只是希望我的浏览器能够等待响应,而不再重试。

回答

1

的各种浏览器超时(TCP TTL,请求超时,连接超时)是在浏览器中安装的是不通过如JavaScript的标准方式配置设定。

如果你真的必须找到一种方法来保持与服务器的连接长时间存活,你可以尝试执行WebSockets,但即使这可能受浏览器,操作系统甚至网络设备(路由器)的限制。

因此不建议将您的应用程序依赖于正常运行特定的浏览器的行为。也不建议在与服务器的HTTP请求处理相同的线程/进程中发生长时间运行的进程,因为有人丢失连接可能会导致作业过早终止。您可能需要调查像Resque这样的宝石,以将长时间运行的作业移至后台进程。

然后你可以有你的webapp立即响应至后台作业的状态与信息工作的要求,你会不会担心浏览器请求重发或失去连接等

相关问题