【发布时间】:2014-08-22 22:53:53
【问题描述】:
在纯 javascript 中执行 Ajax 请求时,似乎可以设置超时值。见How to detect timeout on an AJAX (XmlHttpRequest) call in the browser?
在使用 jQuery 的 ajax 实现和我假设的其他类似框架时也是可能的。见Set timeout for ajax (jQuery)
浏览器似乎对其默认超时有相当模糊的规范。见Browser Timeouts
因此有人可能会“嘿,我要为我的 ajax 请求设置一个超时时间,这样所有用户都会有相同的超时时间”。
但是,接下来的问题是:它真的会在所有情况下都覆盖浏览器的超时吗?
当我说“所有”情况时,我的意思是,例如,如果浏览器超时值小于您的 ajax 请求超时值。
我怀疑它没有。
我还怀疑最好的做法是始终使用超时错误处理程序,以确保无论发生什么情况,您都可以显示相关消息,从而为您的支持团队节省数小时的工作时间,并为您的公司节省资金。见Determine if $.ajax error is a timeout
提前致谢
【问题讨论】:
-
基于这个morgb.blogspot.de/2014/05/…我猜“至少在Firefox上没有。这个答案声称没有办法覆盖。stackoverflow.com/questions/1192375/…
-
你知道AJAX的“完成”、“成功”和“错误”设置吗?我的意思是,当您在请求结束时设置了响应的“完整”设置时,为什么还需要一个 timeOut 函数?
-
@FernandoUrban 是的,我愿意。问题是关于设置相同的超时值而不管浏览器(浏览器的超时)。不是根据超时行事(无论您是在“完成”还是“错误”中执行)。
标签: javascript jquery ajax