Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Несколько вещей об Ajax, которые должен знать веб-мастер

Раздел: Programming / Ajax @ 14.05.2008 | Ключевые слова: JavaScript ajax версия для печати

Автор: перевод absolvo
Источник: habrahabr

По-английски AJAX произносится как эй-джэкс, по-русски довольно распространено ая́кс.
Вроде бы всё красиво, но есть несколько подводных камней, о которых я вам ниже и расскажу.


Ajax - это не просто акроним, это идея


Хотя Ajax и является акронимом от «Асинхронный JavaScript и XML», это не раскрывает его идеологию. Ajax – это идеология, которая гласит, что для работы серверного веб-приложения, совсем не обязательно перезагружать всю страницу, бесполезно гоняя данные от сервера к клиенту и обратно. Использование Ajax’a позволяет сделать веб-приложение более гибким и современным, позволяя пользователям работать с веб-приложением более продуктивно и удобно.

ajax130508.jpg




Это действительно JavaScript


Ajax-приложения пишут на JavaScript и, как правило, используют объект XMLHttpRequest для передачи данных (для браузеров от Microsoft - ActiveXObject(Microsoft.XMLHTTP) - ничего не поделаешь). Объект XMLHttpRequest был одобрен World Wide Web Consortium. Поскольку технология получила широко распространение относительно недавно, то никакого общего стандарта нет, и как следствие - разные браузеры могут по разному понимать Ajax или просить особо подхода, яркий пример чего - это браузеры от Microsoft. Для более глобальной совместимости можно использовать другие технические решения, к примеру фреймы, кукисы, Java-аплет или Flash. Однако если фреймы и куки не всегда справляются с возложенной задачей, то Java-аплет или Flash слишком тяжеловесны. Вы когда-нибудь в страшном сне представляли админку WordPress`a сделанную полностью на флеше?

Независимо от того, используете вы Ajax или нет, JavaScript поднялся до новых, ранее не доступных ему, высот. Теперь это полноценный инструмент для современного веб-мастера, игнорировать его более нет смысла, он полезен и удобен для пользователя. Например я активно начал учить JavaScript, если раньше я довольствовался каким-то общим представлением и написанием несложных скриптов - то сейчас я начал копать глубже, потому что я планирую работать с Ajax более тесно.

Разработчики, которые считают JavaScript второсортным или вредным языком, избегают его как только могут. Однако если перед вами стоит задача написать Ajax-приложение, вам всё равно придётся использовать JavaScript. Аналогией могут служить разве что Java-аплеты или Flash.

Ajax очень интерактивен, потому при ошибках проектирования приложения или кодинга, могут возникнуть проблемы. Ajax принял в наследство все правила хорошего тона от JavaScript, все правила и запреты - это касается написания, отладки и тестирования уже готового приложения.


XML вовсе необязателен


Не смотря на то, что «X» в акрониме Ajax пошла именно от XML, его использование вовсе необязательно. Вполне допустимо использовать просто текст, предположим, с разделителями, а то и просто куски HTML кода (что я и делаю, в общем-то, скрипт, к которому отправлялся запрос генерирует готовый кусок кода, который просто заменяет предыдущий код). А ещё кто-то использует YAML разметку.

XMLHttpRequest пока плохо работает с бинарным форматом данных, в отличие от Flash. Но скоро такая ситуация, как мне кажется, будет исправлена. Уже сейчас есть фиксы, костыли - но всё не то.

Как вывод - проанализируйте, какой формат данных в вашем случае удобней и быстрее обрабатывается. К примеру для несложных манипуляций замечательно подойдёт YAML или CSV, а XML будет излишне толстым :)


Рассчитывайте и планируйте увеличение HTTP запросов


Самая очевидная проблема для веб-мастера заключается в том, что что веб-приложение отныне будет отсылать не пару сотен килобайт раз, к примеру, в 10 минут, а более часто более мелкими объёмами. На деле это означает возможность возникновения задержек в обработке Ajax-запросов и усиления нагрузок на веб-сервер. Это следует учитывать ещё на уровне проектирования Ajax-приложения.


Оптимизируйте Ajax-запросы аккуратно


Не переусердствуйте, потому как оптимизация запроса в итоге даст вам минимальный выигрыш в скорости отправки-получения запроса. Лучше включите компрессию на стороне сервера. Все современные браузеры это поймут и оценят.

Однако есть решение лучше - кеширование запросов. Причём не утруждайте себя изобретением велосипеда с попыткой закешировать это на строноне клиента - кешируйте прямо на сервере. Ajax-приложение выйграет от этого много больше, чем от сжатия.


Помните о максимальном количестве соединений


Ajax-приложения ограничены спецификацией HTTP, которая позволяет открывать одновременно не более двух соединений к одному сетевому адресу. Хорошая новость в том, что в большинстве случаев эти ограничения отсутствуют. Однако могут возникнуть проблемы с браузером, или с сетевым администратором. Однако последним, по хорошему, закрыть бы на это глаза.


Следите за полученными ответами


В традиционном веб-приложении, разработчики обычно не заморачиваются порядком получения данных пользователями. Да по сути, это и не нужно. Ajax такого не любит. Важно соблюдать очерёдность «отправка-приём-обработка полученного», иначе могут возникнуть совсем неожиданные проблемы.


Внимательно следите за ошибками


Уже много лет пользователи, при проблемах с отображением страницы нажимают кнопку «Назад» в браузере. В современных Ajax-приложениях это тоже важно. Ведь обычной gif картинки недостаточно для определения состояния запроса.

При возникновении ошибки отправляйте себе нотисы, для их анализа и ликвидации ошибок и проблем. А пользователю выведите что-нибудь дружелюбное после определённого времени. Стоит также признать, что современные JS/Ajax фреймворки не умеют нормально работать с тайм-аутом.


Старая сказка о безопасности


На самом деле Ajax-приложение так же безопасно, как и традиционное. Заголовки одинаковы, средства и способы коммуникации - тоже одинаковы. Хотя стоит отдельной строкой уделить внимание некоторым вещам, ведь классические ошибки могут спокойны стать наследством Ajax-приложения.

Это XSS - сам по себе он не является новинкой, просто с распространением Ajax-приложений начал набирать популярность. Как минимум фильтруйте любой HTML код, приходящий от пользователя. Так же проверяйте HTTP Referer - ибо это важно.

Сейчас сетевые специалисты приходят к выводу, что ненадлежащая защита сайта, который активно использует JavaScript, может привести не только к несанкционированному доступу к вашему серверу, но и к компьютеру вашего посетителя. Будьте аккуратны и осторожны, ведь потом будет неприятно узнать, что из-за вашей лени у кого-то увели аську или кошелёк.


Вместо «Спасибо за внимание»


Этот текст является вольным переводом с правками и дополнениями статьи 10 things IT needs to know about Ajax.

Кросс-пост из моего блога.

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / Ajax


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.