Как обеспечить, чтобы запросы AJAX, вызываемые в определенном порядке, получали ответ в том же порядке? - PullRequest
5 голосов
/ 09 марта 2011

Как обеспечить, чтобы запросы AJAX, вызываемые в определенном порядке, получали ответ в том же порядке?

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

Во-первых, имейте в виду, что сам сервер может не возвращать ответы в порядке поступления запросов.Представьте себе, если вы сначала запускаете сложный запрос Ajax, а затем простой запрос (возможно, ссылаетесь на некоторые кэшированные статические данные).Второй запрос, вероятно, вернется раньше, чем сложный.Вы можете видеть, как это усложняет вещи;если порядок получения запросов не совпадает с порядком возврата ответов, как можно дать заверения?

У вас есть несколько вариантов:

1) Вы можете сделать запросы синхроннымивместо асинхронного.Тем не менее, это заблокирует браузер.

2) Лучшим подходом было бы объединить запросы так, чтобы следующий запрос запускался только после завершения первого, путем запуска только второго запроса после первого возврата.

В качестве примечания, если вы обнаружите, что у вас есть 2 ajax-операции, которые вам нужно объединить, возможно, имеет смысл создать конечную точку сервера для обработки 2-х операций в одном запросе.т.е. просто сделайте запрос ajax, чтобы сделать все, что вам нужно.

1 голос
/ 14 октября 2016

Другим вариантом является наличие счетчика в вашем коде Javascript, который увеличивается каждый раз при выполнении этого вызова AJAX.Затем передайте это значение в вызове AJAX и включите это значение в ответ.Таким образом, у вас есть способ отслеживать, в каком порядке должны быть ответы.

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