Модуль zepto.ajax реализует упрощённый набор методов для
отправки HTTP-запросов, загрузки данных и сериализации форм. Интерфейс
во многом совместим с jQuery, однако размер и внутренние алгоритмы
оптимизированы под мобильные браузеры и современный JavaScript.
Важно помнить о подключении дополнительного файла
zepto.ajax.js и при необходимости
zepto.form.js и zepto.callbacks.js. Без них
часть методов будет недоступна.
$.ajax$.ajax(options) обеспечивает низкоуровневый доступ к
Ajax-функционалу. Основные параметры:
url: адрес запроса.type: HTTP-метод (по умолчанию GET).data: объект или строка данных.dataType: ожидаемый тип ответа (json,
xml, html, text).contentType: MIME-тип тела запроса.timeout: время ожидания в миллисекундах.headers: дополнительные заголовки.success, error, complete:
колбэки обработки результата.Особенность: в Zepto отсутствует поддержка ряда
«устаревших» опций jQuery — например, jsonpCallback
реализована, но с другим внутренним механизмом и менее формальной
валидацией.
Пример типового вызова:
$.ajax({
url: '/api/users',
type: 'POST',
data: {name: 'Ivan'},
dataType: 'json',
success: function(resp) {
console.log(resp);
},
error: function(xhr, status, err) {
console.error(status, err);
}
});
$.get и $.postZepto предоставляет упрощённые обёртки над $.ajax:
$.get(url, [data], [success], [dataType])$.post(url, [data], [success], [dataType])Основное назначение — краткая запись для запросов без детальной конфигурации.
$.get('/status.json', function(data){
console.log(data.ok);
});
$.getJSON$.getJSON(url, [data], [success]) возвращает JSON-ответ.
В отличие от jQuery, внутри отсутствует сложная обработка ошибок формата
JSON, метод предполагает корректность ответа.
$.getJSON('/profile', {id: 42}, function(user){
console.log(user.name);
});
$.ajaxJSONPСпециальный метод для запросов JSONP —
$.ajaxJSONP(options). Вызов создаёт
<script> с присвоенным callback-параметром.
Параметры:
url: обязательный.jsonp: имя параметра callback.success: обработчик.error: обработчик.JSONP не поддерживает таймауты на уровне XHR, поэтому Zepto реализует их вручную.
$.ajaxJSONP({
url: 'https://example.com/data?callback=?',
success: function(data){ console.log(data); }
});
$.ajaxSettingsГлобальные настройки по умолчанию определяются в
$.ajaxSettings. Изменение значений влияет на все будущие
вызовы $.ajax.
Доступные параметры:
type: метод запроса (GET).timeout: глобальный таймаут.contentType: MIME-тип по умолчанию.processData: необходимость сериализации объектов в
строки.Используется для централизации конфигурации и унификации поведения в разных частях приложения.
ajaxStart, ajaxStop,
ajaxSend, ajaxSuccess, ajaxError,
ajaxCompleteZepto реализует часть событий, совместимых с jQuery:
ajaxStart: первый активный запрос.ajaxStop: завершение последнего активного запроса.ajaxSend: перед отправкой запроса.ajaxSuccess: успешный ответ.ajaxError: ошибка запроса.ajaxComplete: завершение запроса независимо от
результата.Эти события позволяют организовать логирование, обработку индикаторов загрузки или глобальные interceptor-механизмы.
$.param$.param(obj) сериализует объект в URL-строку.
Поддерживает вложенные структуры в стиле PHP-массивов
(a[b]=1), если они явно переданы в data.
$.param({a: 1, b: 2});
// "a=1&b=2"
load$(selector).load(url, [data], [success]) загружает
HTML-фрагмент и вставляет его в DOM выбранного элемента. Поддерживается
выборка части ответа через пробел:
$('#box').load('/page.html #content');
Этот способ используется для частичной подгрузки страниц и компонентов.
serialize и serializeArrayМодуль zepto.form добавляет два метода:
serialize(): строковая сериализация.serializeArray(): массив объектов
{name, value}.Оба соответствуют поведению jQuery и применяются для подготовки
данных перед $.ajax или $.post.
$('form').serializeArray();
// [{name:"email", value:"a@b.c"}]
1. Без поддержки старых IE. Модуль ориентируется на современные браузеры, поэтому отсутствует множество совместимых веток и полифиллов.
2. Упрощённая модель ошибок. Ошибки трактуются в основном по статусу HTTP или по срабатыванию таймаута; отсутствует глубокая проверка типов.
3. JSONP работает через встроенный callback без избыточных обработчиков.
4. Нет поддержки abort() для всех
случаев. Прерывание запроса возможно для XHR, но менее
формализовано, чем в jQuery.
В последних версиях модуль возвращает объект, имитирующий минимальный
интерфейс then(success, error). Это не полноценный
Promise/A+, но позволяет связать цепочки:
$.get('/api').then(function(d){ console.log(d); });
Модуль гармонирует с «легковесными» архитектурами: через события, глобальные настройки, события DOM и минимальные интерфейсы колбэков. Отсутствие лишних абстракций ускоряет выполнение и облегчает отладку.
| Возможность | Zepto | jQuery |
|---|---|---|
| JSONP | Да | Да |
| Events Ajax | Частично | Полностью |
| Deferred/Promise | Упрощённо | Полно |
| Формы | Да (через модуль) | Да |
| Abort | Частично | Полно |
| Кросс-браузерность | Современные браузеры | Шире |
Ajax-методы занимают важную позицию в архитектуре Zepto: они обеспечивают асинхронную интеграцию, дополняют компактную DOM-модель и соответствуют общей идее минимализма. Благодаря малому размеру и достаточному покрытию сценариев модуль остаётся востребованным в мобильных интерфейсах и SPA-подходах, где важны скорость загрузки и простота использования.