Tuesday, April 28, 2009

Новый Ajax

Или скорее трюк в использовании Ajax от Digg. Основная идея - объединить прежнее множество отдельных запросов в один. Запрос обрабатывается (возвращает данные) как multipart, где каждая часть - это то, что прежде и было отдельным запросом. А теперь - все в одном HTTP соединении. Это реально может дать ощутимый выигрыш. Как известно, большое число асинхронных запросов может наоборот загрузить сервер еще сильнее, а здесь асинхронность сохраняется, но запрос всего один.

Код (включая JavaScript библиотеку для Multipart XMLHttpRequests) доступен на github.

Вот пример, на котором выигрыш по сравнению с классическим подходом будет заметен. Здесь запрашивается большое число изображений с сервера. Для нового подхода - они все идут одних потоком и при обработке на стороне клиента каждая часть из multipart response добавляется к странице как встроенное изображение (набор данных, закодированный с помощью base64 - RFC 2397)

No comments: