Можно ли использовать jQuery AJAX API и сделать синхронные вызовы?
Синхронные вызовы с jquery
Ответ 1
Как Обама сказал бы: ДА ВЫ МОЖЕТЕ!
Настройка
async = false
в обработчике .ajax() выполнит трюк.
Ответ 2
В то время как jQuery может выполнять синхронизацию вызовов AJAX, устанавливая свойство synch: false, это заставляет браузер зависать до завершения AJAX. Использование библиотеки управления потоком, например Frame.js, позволяет делать синхронные вызовы без привязки браузера:
$.each(ajaxObjects, function(i, ajaxCall){
Frame(function(next)){ // declare the callback next here
ajaxCall.complete = function(data){
// do something with the data
next(); // go to the next ajax call
}
$.ajax(ajaxCall);
});
}
Frame.init();
Эта серия вызовов AJAX будет выполнена в порядке, каждый из которых ожидает завершения предыдущего, без зависания браузера. Также имеет дополнительное преимущество, что данные возвращаются из вызовов ajax в предсказуемом порядке, в отличие от асинхронных вызовов, которые возвращаются в случайном порядке.