708
 

Новый плагин для Mootools – Request.Queue

mootools

Request.Queue – это новый плагин для библиотеки Mootools, который позволяет последовательно отправлять AJAX запросы на сервер. Работает это так: пользователь создает некоторое количество запросов Request, которые должны быть отправлены на сервер один за одним, затем добавляет их в очередь Request.Queue, после чего для каждого запроса вызывается метод send() в том порядке, в котором они должны быть отправлены.

Рассмотрим следующий пример:

var num1 = new Request({ url: '/wiki/simple.php', data: {num: 1, sleep: 1}, method: 'get',
    onComplete: function(response){ console.log(response) } });
var num2 = new Request({ url: '/wiki/simple.php', data: {num: 2, sleep: 1}, method: 'get',
    onComplete: function(response){ console.log(response) } });
var num3 = new Request({ url: '/wiki/simple.php', data: {num: 3, sleep: 1}, method: 'get',
    onComplete: function(response){ console.log(response) } });
var myQueue = new Request.Queue();
// можно добавлять запросы по одному
myQueue.addRequest('num1', num1);
// ... или сразу несколько
myQueue.addRequests({ num2: num2, num3: num3 });
num1.send();
num2.send();
num3.send();

В этом примере очередь запросов будет отправлять по очереди запросы num1, num2, num3. Каждый из них будет отправляться только после того, как предыдущий завершился.

Стоит отметить, что Request.Queue может отправлять не только по одному запросу за раз, а и по нескольку, если указать для него опцию concurrent (по умолчанию равняется 1). Кроме этой опции, есть также stopOnFailure и autoAdvance (обе по умолчанию равны true). Первая приостанавливает отправку запросов при возникновении ошибки, при этом возобновить отправку запросов можно при помощи функции resume(). Если установить эту опцию в false, то запросы будут отправляться даже если один из них завершился с ошибкой. Вторая опция – autoAdvance автоматически отправляет следующий запрос. Если установить опцию в false, то отправить следующий запрос в очереди можно будет используя функцию runNext().

Как вы уже видели из предыдущего примера, запросы можно добавлять при помощи функций addRequest() и addRequests(). Удалять запросы из очереди можно при помощи функции removeRequest():

var foo = new Request();
myRequestQueue.addRequest('fooRequest', foo);
myRequestQueue.removeRequest(foo);
// или
myRequestQueue.removeRequest('fooRequest');

Если вам нужно полностью очистить очередь запросов, то это можно сделать одной функцией – clear():

myRequestQueue.clear();

Также, объектам Request.Queue можно назначать следующие события:

  • onRequestStart
  • onRequestEnd
  • onRequestSuccess
  • onRequestComplete
  • onRequestCancel
  • onRequestException
  • onRequestFailure

Узнать подробнее о всех функциях и событиях можно в документации. Скачать скрипт можно здесь – просто отметьте в списке доступных для скачивания плагинов Request.Queue и жмите Download.

Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Оставить комментарий

JSToolbox создан на основе WordPress