Почему синхронные вызовы ajax не поддерживаются в режиме ожидания jquery? - PullRequest
4 голосов
/ 27 октября 2011

Я читал здесь , что синхронные вызовы ajax в jquery не истекают.

Это техническое ограничение или просто то, что авторы не хотели поддерживать?Что на самом деле происходит под таблицей, когда вызов ajax является синхронным?

Ответы [ 3 ]

9 голосов
/ 27 октября 2011

Браузер обрабатывает синхронные / асинхронные запросы через API XMLHttpRequest , но у него нет встроенной функции тайм-аута.JQuery реализует свой собственный тайм-аут в JavaScript поверх API браузера XHR.

Поскольку синхронный вызов блокирует все запущенные сценарии, тайм-аут JQuery не работает.Теоретически кажется, что синхронные таймауты были бы возможны, если бы они были реализованы на уровне браузера, а не на уровне JS.

2 голосов
/ 27 октября 2011

Синхронный вызов AJAX блокируется до завершения запроса.Реализация тайм-аута невозможна по техническим причинам, потому что вызов AJAX должен быть выполнен позже.

Если вызов AJAX будет выполнен позже, функция должна каким-то образом реализовать функцию блокировки, чтобы код не могпродолжить выполнение после вызова AJAX и выполнить его снова после истечения времени ожидания - невозможно.

0 голосов
/ 27 октября 2011

Действительно, это что-то, связанное с природой запроса AJAX, jQuery не может изменить это.

Я думаю, что в этих случаях тайм-аут должен быть реализован на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...