Ajax против юзабилити

Хотя технологии, на которых базируется ajax, появились достаточно давно, свою популярность они получили полтора года назад в связи запуском компанией Google целой серии своих стартапов, таких как GMail, Google Maps и других. Успех ajax оказался настолько головокружительным, что скружил голову большинству веб-разработчиков по всей планете.

В данный момент, на мой взгляд, популярность ajax достигла своего апогея, потому что ajax пытаются впихнуть всюду: где надо и где не надо. Менеджеры веб-девелоперских компаний используют ajax как продажную девку, зарабатывая деньги на его популярности и ажиотаже вокруг него. Каждый владелец сайта желает, чтобы на его сайте хотя бы где-нибудь использовался ajax, чтобы можно было понтануться перед знакомыми или конкурентами.

Мы уже наблюдали подобное в самом начале 21-го века в связи с ростом популярности технологии Macromedia Flash. Тогда и даже сейчас заказчики веб-сайтов все еще желают видеть на своих сайтах Flash, тогда как многие пользователи интернета — нет, именно по этой причине появились расширения для браузеров, блокирующие Flash или откладывающие их загрузку: AdBlock, FlashBlock. Якоб Нильсен, считающийся, пожалуй, самым большим авторитетом в области юзабилити, еще в октябре 2000 года написал статью под заголовком «Flash 99% Bad».

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

Пожалуй, самыми характерными особенностями веба как платформы являются кнопки Back (Назад), Forward (Вперед), Reload (Обновить) и Stop (Стоп). Эти кнопки есть часть стандартного пользовательского интерфейса, который есть всегда, эти кнопки есть абсолютно во всех браузерах и абсолютно все пользователи в большей или меньшей степени пользуются ими.

Клики на ссылках, которые в действительно не приводят к переходу на другую страницу, а инициируют работу javascript по подгрузке данных, не оставляют записей в history браузера, поэтому в общем случае кнопки Back и Forward не работают должным образом, а Reload (Обновить) приводит к сбросу страницы в первоначальное состояние.

Таким образом, если абсолютно весь интерфейс веб-приложения построен на ajax, то history браузера как правило остается пустой за все время работы. Но еще хуже, когда history все же иногда не остается пустой — тогда пользователь может по привычке нажав Back перескочить сразу на несколько шагов назад. Во избежание этого разработчики ajax-сайтов1 все действительные ссылки открывают в новом окне, что в свою очередь тоже плохо для пользователя: Якоб Нильсен: 10 самых страшных грехов веб-дизайна, Артемий Лебедев: § 43. Открывание новых окон.

Хотя, открытие ссылок в новом окне лишь частично спасает положение — если пользователь пришел на такой сайт по ссылке с другого сайта, то его history уже не пустая и если пользователь нажмет Back, то он попадет на сайт, с которого он изначально пришел на этот, а вернувшись по кнопке Forward, он скорее всего попадет не совсем в то место, где он до этого был.

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

В заключение я хочу сказать, что технология ajax полезная, но использовать ее нужно очень аккуратно. При проектировании пользовательского интерфейса, использующего ajax, необходимо постоянно задавать себе вопрос: а не ломает ли это привычные пользователю способы навигации и использования сайта? В общем случае ajax есть смысл использовать для отрисовки каких-либо списков или деревьев, для обработки действий в контекстных блоках (например, в голосованиях), для серверной валидации введенных данных, для обновления часто меняющейся информации и т.п. Но основной контент, который может быть представлен как некий целостный объект, должен открываться традиционным образом и всегда иметь свой собственный URI.
Теги:
Ajax
Добавлено: 16 Мая 2015 19:23:11 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...