jquery发帖是否超时?

时间:2017-07-06 07:46:43

标签: javascript jquery

Official documentation在jQuery上没有提到它。

可能的混淆:我知道我可以使用ajax来控制超时,但我的问题不同。

方案

我正在使用post从后端获取数据,我知道这需要很长时间(有时非常长)才能加载。

问题

我的javascript请求是否会超时或总是等到后端加载,即使需要几分钟?

3 个答案:

答案 0 :(得分:2)

HTTP请求超时是服务器端配置,而不是客户端配置。通过Jquery代码提交的请求也不例外。 您可能希望针对上一个请求的返回代码进行测试,并将异常处理添加到您的代码中(例如重新提交请求)

始终检查响应代码,常见的策略是rety。 https://www.lifewire.com/g00/troubleshooting-network-error-messages-4102727

答案 1 :(得分:2)

默认情况下,请求的超时由浏览器和接收服务器控制,以先取消请求为准。我相信大多数浏览器默认都有60秒超时。服务器可以是任意值。

  

我的javascript请求是否会超时,还是会一直等到后端加载,即使需要几分钟?

因此,答案是,您的请求将在任意点超时。如果要控制强制用户等待请求的时间,则可以使用timeout调用的$.ajax属性专门设置此时间。这将覆盖浏览器或服务器上设置的任何超时。

15秒应该绰绰有余。如果请求的使用时间超过了我建议您更改用于生成响应的模式。

答案 2 :(得分:2)

Jquery使用本机XMLHttpRequest模块发出请求。

  

XMLHttpRequest.timeout属性是一个unsigned long,表示请求在自动终止之前可以采用的毫秒数。默认值为0,表示没有超时。

读取jquery库的源代码时,ajax方法没有设置超时,因此可以保存请求不会超时。

但是你可以在jquery和本机模块中显式设置超时。

这并不意味着您的请求不会超时,因为服务器通常会执行保释超时策略,通常是服务器端的长响应超时。您可以将分块或流媒体视为一种安全便捷的解决方案。

github jquery ajax来源:

https://github.com/jquery/jquery/tree/2d4f53416e5f74fa98e0c1d66b6f3c285a12f0ce/src/ajax