Библиотека Интернет Индустрии I2R.ru |
|||
|
АJAX. Не повторяйте ошибокИюнь 29, 2005 Автор: Никита Вакорин AJAX (Asynchronous JavaScripting and XML) стремительно притягивает интерес веб-разработчиков к использованию определенного инструментария - конкретного набора технологий, с помощью которого (по мнению большинства) закладывается новый этап развития веб-приложений. Этот набор включает в себя (X)HTML, CSS, DOM, JavaScript, XML, XSLT, XMLHttpRequest и как альтернативу к XML/XSLT возможно использовать JSON и JSON-RPC. AJAX устраняет необходимость перезагрузки веб-страницы и позволяет "на лету" подгружать и преобразовывать необходимую информацию. Подробнее 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 запрос решит вырезать параграф намного выше того места, которое я читаю, выбивая меня из процесса чтения. Это определенно раздражает и впустую тратит мое время на то, чтобы определить где я находился. Статьи по теме: |
|
2000-2008 г. Все авторские права соблюдены. |
|