Главная страница статей --> Хитрости при программировании php, заметки по базам данных

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

Источник: realcoding.net

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 запрос решит вырезать параграф намного выше того места, которое я читаю, выбивая меня из процесса чтения. Это определенно раздражает и впустую тратит мое время на то, чтобы определить где я находился.



Похожие статьи:
- Защищаем контент сайта
- Генерация Flash на веб-сервере в PHP
- Проверка почтового адреса
- AJA - AJAX без XML
- SSI и общий стиль
- Отправка файлов аттачем
- Как через форму положить файл на сервер
- Поиграем с PHP - "Поле чудес"
- Модульное программирование на PHP или как написать маленький портал
- JavaScript Selections (работа с выделениями)
- Системы голосований на РНР
- На линии огня
- Регулярные выражения используются для сложного манипулирования строками в PHP


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]