Why don't synchronous ajax calls in jquery support timeout?

前端 未结 3 1106
被撕碎了的回忆
被撕碎了的回忆 2021-01-06 06:21

I was reading here that synchronous ajax calls in jquery don\'t time out.

Is this a technical limitation, or just something the authors didn\'t feel like supporting

相关标签:
3条回答
  • 2021-01-06 06:30

    The browser handles synchronous/asynchronous requests via the XMLHttpRequest API, but it does not have a built-in timeout feature. JQuery implements its own timeout in JavaScript on top of the browser XHR API.

    Since a synchronous call blocks all running scripts, the JQuery timeout does not work. In theory, it seems like synchronous timeouts would be possible if they were implemented at the browser level, as opposed to the JS level.

    0 讨论(0)
  • 2021-01-06 06:32

    Indeed, is something related to the nature of AJAX request, jQuery cannot modify this.

    I think timeout should be implemented in the server side in those cases.

    0 讨论(0)
  • 2021-01-06 06:53

    A synchronous AJAX call blocks until the request has been finished. Implementing a timeout is not possible for technical reasons, because the AJAX call would have to be executed later.

    If an AJAX call is executed later, the function somehow has to implement a blocking feature, to stop the code from running further after the AJAX call, and execute it again after a timeout - not possible.

    0 讨论(0)
提交回复
热议问题