Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #67, ИЮНЬ 2006 г.

созидательная сила AJAX

ALEXEY SHOCKOV

Спецвыпуск: Хакер, номер #067, стр. 067-052-3


[шаблоны и антишаблоны] Кстати, собираясь использовать такую технологию, как AJAX, стоит десять раз подумать о том, нужна ли она вообще для решения поставленной задачи? Чтобы было проще понять, где должна применяться эта технология, я приведу несколько примеров.

Для начала вспомним формы с множеством полей, которые нужно заполнять... А если на странице множество ссылок на формы, в которые нужно ввести какую-то информацию? Несколько минут бесполезного ожидания загрузки очередной страницы и отправка данных формы на сервер — и так множество раз. Перспектива нас не радует, правда? Как раз для этих задач в первую очередь нужно применять AJAX: пользователю не придется каждый раз загружать новую страницу, а при запросе очередной формы будет инициирован запрос на сервер, результатом которого станет список полей новой формы.

Отдельно хочется сказать о формах, в которых предусматривается поле с большим количеством вводимого текста. Примером могут послужить форумы, web-интерфейсы почтовых сервисов и многое другое. Неожиданное отключение питания, зависание браузера — много ли еще ситуаций, когда введенный текст не сохраняется и приходится писать его заново? Избежать неприятных ситуаций поможет автоматическое сохранение текста письма или сообщения, которое мы писали в форум. Один из первых проектов, в котором была реализована такая возможность, стал Gmail, а в ближайшем будущем к нему должна присоединится и «Яndex.Почта».

Голосования и различные мелкие формы, которые отсылают выбор пользователя серверу для дальнейшей обработки, также входят в область применения технологии AJAX. Нежелание перезагружать страницу часто убивает желание пользователя проголосовать в опросе на сайте. Отправка же данных средствами XMLHTTPRequest прозрачна для пользователя, она не заставляет его ждать, пока форма будет отправлена на сервер и страница перезагрузится.

От шаблонов проектирования плавно перейдем к антишаблонам. Кстати, при большом притоке пользователей интенсивное использование AJAX существенно увеличит нагрузку на сервер! Если на одной странице мы обновляем одновременно много элементов, лучше обновить ее полностью. Также не стоит делать множество маленьких запросов к серверу. Нужно найти оптимальное для сайта соотношение нагрузки на сервер и количества подгружаемой информации.

Нет смысла использовать AJAX в критически важных местах. Если пришлось использовать его, то нужно позаботиться о том, чтобы при выключенном JavaScript все работало как нужно.

[используем библиотеку Subsys_JsHttpRequest]

Обсудив теоретические моменты, перейдем к практике, в которой можно использовать два подхода: писать весь механизм взаимодействия клиент-сервер самостоятельно или воспользоваться готовой библиотекой. Чаще всего совсем не требуется изобретать велосипед, так что мы воспользуемся вторым вариантом, а именно — библиотекой Subsys_JsHttpRequest от Дмитрия Котерова для PHP. Почему именно этот язык и эта библиотека?

Назад на стр. 067-052-2  Содержание  Вперед на стр. 067-052-4