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



我在这里读到jquery中的同步ajax调用不会超时。

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

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

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

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

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

的确,这与AJAX请求的性质有关,jQuery无法修改这一点。

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

最新更新