Убедитесь, что функция ajax завершает работу до того, как сработает вторая не-ajax-функция - PullRequest
2 голосов
/ 05 января 2010

Аналогично только что заданному вопросу,

Если я вызываю ajax-функцию в jQuery, а затем не-ajax-функцию, как я могу предотвратить запуск не-ajax-функции до завершения первой функции обратного вызова ajax. Будет ли достаточно объявления async: false в первой функции ajax?

Ответы [ 2 ]

4 голосов
/ 05 января 2010

Если вы говорите об этом:

$.ajax({...});
someFunction();

, где someFunction() не произойдет, пока не завершится вызов AJAX, тогда у вас есть три варианта:

  1. СделатьAJAX вызов async: false. Не делай этого .Это сделает вашу страницу не отвечающей;
  2. Поместите someFunction() в полные / успешные / ошибочные обратные вызовы вызова AJAX.Это рекомендуемый подход;или
  3. Используйте aplugin для управления очередью запросов, например Очередь Ajax .

Первый A в AJAX означает «асинхронный».Вам просто нужно привыкнуть к тому, что эти вызовы являются асинхронными и перестать пытаться навязать им синхронную модель программирования.Адаптироваться к новой модели программирования.

1 голос
/ 05 января 2010

JQuery AJAX-функции позволяют вам предоставлять обратный вызов, который вызывается только после завершения запроса. Вызовите не-Ajax-функцию как часть этого обратного вызова.

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