Хотя 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 в предсказуемом порядке, в отличие от асинхронных вызовов, которые возвращаются в случайном порядке.