为什么不在jquery支持超时中同步ajax调用?

时间:2011-10-27 17:26:03

标签: jquery ajax timeout

我正在阅读here,jquery中的同步ajax调用不会超时。

这是技术限制,还是作者不支持的东西?当ajax调用是同步时,表下实际发生了什么?

3 个答案:

答案 0 :(得分:9)

浏览器通过XMLHttpRequest API处理同步/异步请求,但它没有内置的超时功能。 JQuery在浏览器XHR API之上实现了自己的JavaScript超时。

由于同步调用会阻止所有正在运行的脚本,因此JQuery超时不起作用。从理论上讲,如果它们是在浏览器级别实现的,那么同步超时似乎是可能的,而不是JS级别。

答案 1 :(得分:2)

同步AJAX调用将阻塞,直到请求完成。由于技术原因,无法实现超时,因为AJAX调用必须稍后执行。

如果稍后执行AJAX调用,该函数必须以某种方式实现阻塞功能,以阻止代码在AJAX调用后进​​一步运行,并在超时后再次执行 - 不可能。

答案 2 :(得分:0)

确实,有些事情与AJAX请求的性质有关,jQuery无法修改这个。

我认为在这种情况下,应该在服务器端实现超时。