Статьи

Наиболее частые ошибки при использовании Ajax

Ajax это удивительная технология, позволяющая создавать веб приложения нового поколения такие как maps.google.com, colr.org и backpackit.com. Но Ajax также опасная технология для веб-разработчиков, она добавляет множество UI (прим. пер. пользовательский интерфейс) проблем, и проблем загрузки сервера.
 
Я собрал список наиболее часто совершаемых ошибок при разработке на Ajax :
 
Не создаются визуальные эффекты произведенного действия
Если я произвел действие, которое должно быть отработано AJAX, вы должны мне дать визуальное подтверждение произведенного действия. Как пример этого индикатор загрузки GMail, расположенный в верхнем правом углу. Когда я произвожу действие, малый красный квадрат показывает мне, что страница грузится, это сделано для того, что AJAX не использует стандартный уникальный идентификатор для каждой новой загруженной страницы.
 
Отсутствие кнопки «Возврат» действия
Кнопка «Возврат» это одна из наиболее востребованных возможностей стандартных пользовательских интерфейсов. К сожалению, кнопка «Возврат» не всегда просто реализуется с помощью Javascript. Хранение дополнительной функциональности это причина, по которой не переходят на разработки веб приложений с использованием только
Javascript.
 
Изменение состояния ссылок (GET запросы)
Как я рассказывал в одной из своих предыдущих статей, Ajax-приложения вносят много проблем для пользователей, которые думают, что состояние не изменяется при использовании метода GET. Не только состояние ссылок вызывает проблему у поисковых роботов, пользователи которые привыкли к наличию ссылок которые управляют навигацией по приложению будут удивлены что ссылки меняют состояние приложения.
 
Мелькание и замена частей страницы неожиданно для пользователя
Первая буква в аббревиатуре АJAX обозначает asynchronous (асинхронный).
Трудности с асинхронными сообщениями в этом возникают, когда они появляются неожиданно. Асинхронные изменения страниц должны происходить в строго определенном месте и должны использоваться с умом, сверкающие и мерцающие области в сообщениях напоминают использование старого HTML-тэга, к которому я бы не хотел возвращаться.
 
Не использовать ссылки «Послать другу» и «Добавить в избранное»
Возможность «Послать другу» для того чтобы он увидел то, что вижу я и возможность добавить в избранное страницу и вернуться назад по этой закладке в дальнейшем. Javascript, и так называемые Ajax приложения, могут вызвать большие проблемы для такой модели использования. Т.к. Javascript динамически генерирует страницы вместо сервера, то URL уже не влияет на навигацию по сайту. Чтобы не потерять эти возможности многие Ajax приложения содержат постоянные ссылки на страницы.
 
Большой программный код замедляет браузер
Ajax это путь для того чтобы сделать приложения javascript более интересными, к сожалению эта интересность обходится более громоздким программным кодом.
 
Больше кода – больше работы для браузера, это касается некоторых интенсивно использующих javascript сайтов, особенно для плохо кодированных, вам нужен мощный CPU для сохранения скорости исполнения функциональных возможностей. Сейчас правда такая проблема не стоит, т.к. по сравнению с прошлыми сейчас компьютеры достаточно
быстрые.
 
Изобретение новых приемов управления для пользователя
Большая ошибка которую легко совершить при использовании Ajax это: "Кликнув мышью на объекте, не всегда вызывается результат, который ты ожидаешь". Конечно, продвинутые пользователи знают что если нажать и удерживать курсор на div то его можно перенести в другое место, но остальные пользователи знают об этом потому что это не используется в общей практике пользователей, таким образом вы увеличиваете сложность и время обучения пользователя, это всегда негативный фактор для любого приложения.
 
Не каскадные изменения других частей страницы
Ajax/Javascript дает вам специфическое управление над содержанием страницы, это позволяет легко получить фокус над одной областью и теряет управление над другими встроенными картинками. В качестве примера это Backpackit заголовок (прим. Переводчика - Все эти возможности на сайте http://www.backpackit.com/, который позволяет печатать свои статьи "). Если вы изменяете заголовок страницы, то незамедлительно меняется заголовок, они даже меняют заголовок справа, но не меняют тег title. C Ajax вы должны менять полную картину, когда делаете локальные изменения.
 
Асинхронно выполняемые операции
С Ajax вы можете редактировать множество полей форм практически в одно время, но это может вызвать множество проблем. Для примера если я выключаю множество флажков (чекбоксов) каждый из которых, отсылает асинхронно на сервер данные, при этом я теряю способность сохранить предыдущее состояние и если его нужно немного изменить то это вызывает дискомфорт при пользовании такими приложениями.
 
Прокрутка страницы дезориентирует пользователя
Другая проблема показа текста в уже загруженной странице происходит при прокрутке длинной страницы. Это может случиться когда читаешь длинный текст и асинхронный javascript запрос решит скрыть уже прочтенные части. Это будет раздражать т.к. будет теряться время для поиска места, где я читаю в данный момент.

=====
Автор: Phpinside
Источник: http://sourcelabs.com/ajb/archives/2005/05/ajax_mistakes.html