АJAX. Не повторяйте ошибок

AJAX (Asynchronous JavaScripting and XML) стремительно притягивает интерес веб-разработчиков к использованию определенного инструментария – конкретного набора технологий, с помощью которого (по мнению большинства) закладывается новый этап развития веб-приложений. Этот набор включает в себя (X)HTML, CSS, DOM, JavaScript, XML, XSLT, XMLHttpRequest и как альтернативу к XML/XSLT возможно использовать JSON и JSON-RPC..
AJAX устраняет необходимость перезагрузки веб-страницы и позволяет «на лету» подгружать и преобразовывать необходимую информацию.

Для веб-разработчиков, AJAX представляет некую опасность, которая открывает проблемы, связанные с пользовательским интерфейсом и нагрузкой на сервер. Поэтому я решил воспользоваться списком наиболее часто повторяющихся ошибок, который составил Алекс Босворф, и разместить их здесь на русском.

Отсутствие немедленного визуального сигнала при щелчке мыши

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

Отсутствие возможности использования кнопки «назад» (back button)

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

Изменение состояния пложения посредствам ссылок (запросы GET)

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

Неожиданно меняющиеся и мигающие части страницы

Первая буква A в слове AJAX означает асинхронность. Проблема с асинхронными сообщениями заключается в том, что они могут сбивать с толку при неожиданном появлении. Асинхронные изменения на странице должны появляться в узко определенных местах и должны использоваться рассудительно. Сверкание и мигание в тех местах, на которые я не хочу концентрироваться, возвращает в дни HTML тэга blink.

Невозможность создавать закладки или передавать ссылки друзьям

Еще одним прекрасным свойством веб-страниц является то, что я могу передавать ссылки другим людям, чтобы они могли увидеть то же самое что и вижу я. Также я могу создать закладку страницы и возвратиться к ней позже. JavaScript, а следовательно AJAX приложения могут создать огромные проблемы в данной модели пользования. Так как динамически страницы генерирует JavaScript, а не сервер, то адрес страницы вырезается из цикла и уже никак не может быть использован в дальнейшем. Очень печально потерять такое свойство. Много AJAX приложений с большим вниманием применяют специально конструированные постоянные ссылки (permalinks) специально для таких случаев.

Слишком много кода делает браузер медленным

AJAX открывает путь к более интересным JavaScript приложениям, но к сожалению, интересно часто означает больше кода. Больше кода означает больше работы для браузера, а это означает, что для работы веб-сайтов, интенсивно использующих JavaScript, особенно с непродуманным кодом, нужно иметь мощный процессор, чтобы все хорошо функционировало. Раньше проблема с ЦПУ всегда была лимитирующим фактором для JavaScript, но прирост в мощности компьютеров не означает, что проблема исчезла.

Асинхронное выполнение групповой обработки

Используя AJAX, вы можете внести сразу несколько изменений в поля формы, но это может создать много проблем. Например, если я убираю много пометок (флажок, галка) каждая из которых асинхронно посылается серверу, то я теряю возможность отследить общую картину изменения checkbox’ов, и последующий поток изменений будет раздражительным и будет сбивать с толку.

Прокрутка страницы и потеря своего места

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

Поделиться в соц. сетях

mailru АJAX. Не повторяйте ошибок
facebook АJAX. Не повторяйте ошибок
odnoklassniki АJAX. Не повторяйте ошибок
livejournal АJAX. Не повторяйте ошибок
googlebuzz АJAX. Не повторяйте ошибок

Также рекомендуем:

  1. AJAX’овые грабли в Internet Explorer 6 Если передаваемый сервером заголовок с кодировкой не понятен IE, то возникает прекрасная, красноречивая Системная ошибка: -1072896658. IE приводит к нижнему регистру передаваемые custom-заголовки запросов, например X-Requested-With: XMLHttpRequest превращается на сервере в x-requested-with: xmlhttprequest). Нафига? Internet Explorer иногда не кеширует фоновые изображения, полученные через AJAX; повторно загружаемый фон «забывает» посмотреть в кеше. IE некорректно парсит js-код [...]...
  2. Кросс-доменный Ajax в jQuery Ajax запросы на сторонние вебсайты, как правило, невозможны из-за ограничений безопасности. Но есть несколько методов обхода данных ограничений.Узнайте подробнее о них, вы можете из этого небольшого руководства.. JSONP С помощью «JSON with padding» вы можете получать JSON данные со стороннего сервера при помощи тега <script>. Подробнее об этом вы можете узнать из Википедии. Это позволяет [...]...
  3. Яндекс изменит технологию поисковой выдачи (SERP) Крупнейший российский поисковик «Яндекс», заявил о скорой смене базовой технологии, применяемой в поисковой выдаче (SERP). Сообщение об этом было опубликовано в официальном блоге заместителя руководителя департамента по разработке компании «Яндекс» – Анатолия Орлова.. С самого начала своего существования «Яндекс» использовал для своей поисковой выдачи специальный perl-скрипт. Не стоит отрицать очевидных достоинств данной технологии, но стоит [...]...
  4. GlassBox Описание Недавно обнаружили весьма интересную javascript библиотеку Glassbox.С ее помощью можно создавать прозрачные рамки, цветные полупрозрачные слои и различные визуальные эффекты, такие как плавное появление и исчезновение слоев.. Эта библиотека весьма компактна и включает в себя библиотеки Prototype и Script.aculo.us. К основным плюсам библиотеки можно отнести: * Легкость использования; * Кроссбраузерность (Работает в IE6+ , [...]...
  5. Опубликован свободный релиз библиотеки jQuery 1.4 В ознаменование праздника по поводу четырехлетия проекта вышел релиз популярнейшей JavaScript библиотеки jQuery 1.4. В новой версии имеется большое количество улучшений. В новой версии имеется большое количество улучшений. Добавлено много десятков обновленных и новых Setter-функций, а также атрибуты и методы, добавлена возможность осуществлять вложения сериализации параметров, Ajax-запросов, автоматически определять типы JSON и нативного режима парсинга [...]...
  6. AJAX для новичков Сейчас в сети Интернет наблюдается очень активное развитие (и даже использование) новых технологий. Одна из таких технологий – AJAX.. Что такое AJAX? AJAX – это аббревиатура, которая означает Asynchronous Javascript and XML. На самом деле, AJAX не является новой технологией, так как и Javascript, и XML существуют уже довольно продолжительное время, а AJAX – это [...]...
  7. Перекрывание селектов в IE6 Даже через абсолютно спозиционированные ДИВ-ы с максимальным zIndex-ом в ИЕ6 «проглядывают» селекты. Задача: подобрать HTML/CSS-способы перекрывания селектов.. Реализация селектов в браузере Internet Explorer 6 такова, что перекрыть их обычными блочными элементами (ДИВ-ы, таблицы) даже при максимальном zIndex-е у последних не получится. Выглядит этот эффект вот так (у ДИВа z-index:10000): Экспериментальным путем было выявлено, что единственный [...]...
  8. Rich Internet Application и контент-менеджмент Ныне модно говорить о Web 2.0. В то время как идея коллективного разума, заложенная в это определение его же автором Тимом О’Рейли, по-прежнему остается темой досужих разговоров, нельзя не заметить, что всемирная паутина меняется. Веб-приложения по удобству использования становятся все ближе к настольным приложениям. Данная тенденция с нарастающей прогрессией охватывает Интернет и уже сегодня можно [...]...
  9. Что нового будет в Rails 1.1 и немного секретов Prototype.js Наткнулся (да, я не знал об этом блоге раньше) на классный блог, который ведёт Scott Raymond. Советую вам прочесть What (will be) new in Rails 1.1 если вы интересуетесь Ruby on Rails, a также Developer Notes for prototype.js для тех кто использует модный AJAX на prototype библиотеке.. Мне же, поработав с Ruby on Rails над [...]...
  10. Множественные уязвимости в Mozilla Firefox Программа: Mozilla Firefox 1.5.0.1 и более ранние версии.Mozilla Suit версии до 1.7.13 Опасность: Критическая Наличие эксплоита: Нет . Описание: Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение, обойти ограничения безопасности, получить доступ к важным данным и скомпрометировать уязвимую систему. 1. Уязвимость существует из-за ошибки, которая позволяет внедрить JavaScript код в другую, в данный момент загружающуюся, [...]...
  11. Как зашифровать HTML-код веб-страницы У начинающих веб-мастеров частенько возникает желание хоть как-то защитить свою интеллектуальную собственность от посягательств других недобросовестных интернет-пользователей, стремящихся «урвать» себе лакомый кусочек чужого кода веб-страницы и в дальнейшем использовать его у себя на сайте.. Именно для таких веб-мастеров компания MoonLight Software выпустила утилиту WebCrypt Pro, которая превратит читабельный и понятный всем HTML-код вашей странички в [...]...
  12. Яндекс запустил RTFM для программистов Яндексом запущен специальный колдунщик для программистов, аналог RTFM. Сообщение об этом распространили разработчики Яндекса. Новый сервис будет показывать ответ на интересующий вопрос непосредственно в поисковой выдаче, облегчая тем самым работу программистам.. Колдунщик предоставляет описания, которые имеются в официальных справочных материалах или действующих руководствах по программированию. Колдунщик уже знает более чем десятью популярными языками программирования и [...]...
  13. CMS Drupal 7.0 – первый публичный релиз Опубликована одна из первых публичных альфа-версий системы управления контентом Drupal седьмой ветки, в которую внесены следующие изменения:. В значительной степени переработаны и обновлены, с целью упрощения, интерфейсы пользователей и администрации и осуществлено добавление новой темы оформления – «7». Появились индивидуальные поля, аналогичные тем, которые представляет модуль Content Construction Kit. В ядро Drupal добавлено управление изображениями, [...]...
  14. Доступен финальный релиз Firefox 3.6 Наконец, компанием Mozilla была выпущена долгожданная финальная версия веб-браузера Firefox 3.6.. Движок новинки основан на Gecko версии 1.9.2. и она имеет следующий ряд интересных нововведений: Теперь имеется возможность изменять внешний вид браузера благодаря легким скинам Personas одним кликом. Подобные скины, отличаются от тем оформления тем, что происходит изменение только в оформлении верхней и нижней частях [...]...
  15. Началось тестирование бета-версии web-фреймворка Ruby on Rails 3.0 Представлен первый бета-выпуск MVC (Model-View-Controller) web-фреймворка Ruby on Rails 3.0, подвергшегося значительной реструктуризации в результате слияния с проектом Merb. Субъективно, по заявлению разработчиков, Ruby on Rails 3.0 стал более легковесным, быстрым и легким для понимания. . Основные улучшения: Модуль для разбора URL (Router) акцентирован на использовании REST (Representational State Transfer) деклараций; Новый Action Mailer API [...]...

Комментарии запрещены.