Как известно, компания Google разрабатывает браузер, нацеленный на максимальную скорость, безопасность и простоту. Каковы успехи браузера на фронтах скорости и безопасности — предмет ожесточённых споров, и однозначного ответа мы не получим, так как критерии сравнения часто различаются, а вот в сфере минимализма графического интерфейса Chrome заставил все браузеры отказаться от нагромождения элементов GUI, панелей и всего прочего, перейдя к сверхкомпактным представлениям. Но разработчики и дизайнеры из Google продолжают навязывать борьбу, бросив ещё вызов конкурентам.
Показаны сообщения с ярлыком синхронизация. Показать все сообщения
Показаны сообщения с ярлыком синхронизация. Показать все сообщения
пятница, 20 мая 2011 г.
понедельник, 22 ноября 2010 г.
Синхронизация асинхронных вызовов. WaitSync
Задача
Допустим вы хотите выполнить два или более AJAX запроса на сервер и вызвать функцию после того, как все они будут закончены.
Небольшая загвоздка в том, что вы не знаете, какой из этих запросов будет закончен первым и не знаете, на кого вешать callback.
Можно завести глобальную переменную и по окончании каждого запроса проверять, завершился ли другой запрос.
Собственно, этим и занимается мой небольшой класс WaitSync =)
WaitSync.js
Пользоваться элементарно просто:
1. Создаем объект типа WaitSync, передав в конструктор callback функцию, которая будет вызвана после того, как отработают нужные задачи.
var vulture = new WaitSync(function () {
console.debug('Start eating: ', arguments);
});
2. Вместо простого
$.getJSON(
'savannah/get_prey',
function (data) {
console.log('... prey found: ' + data);
}
);
$.getJSON(
'savannah/get_other_predators',
function () {
console.log('... predators are done eating');
}
);
«заворачиваем» задачи в метод .wrap
$.getJSON(
'savannah/get_prey',
vulture.wrap(
function (data) {
console.log('... prey found: ' + data);
}
)
);
$.getJSON(
'savannah/get_other_predators',
vulture.wrap(
function () {
console.log('... predators are done eating');
}
)
);
3. Все =) Как только будут выполнены оба AJAX запроса, стервятник начнет есть.
Подписаться на:
Сообщения (Atom)