Июль 28 2006

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

Категория: Юзабилитиgugglegum @ 03:08

Хотя технологии, на которых базируется 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.


1 В данной статье термин ajax-сайт означает сайт, целиком выполненный на технологии ajax.

6 отзывов на “Ajax против юзабилити”

  1. Денис says:

    Статья не плохая, но я с ней немного не согласен…. я считаю, что ajax не должен быть и использоваться обособленно, он должен идти в привязке к чему либо, либо не использоваться вообще…
    К примеру:
    1. Есть библиотека http://extjs.com которая реализует огромные возможности на javascript и по сути создает полноценную клиент-серверную архитектуру, где передаваемы данные сервером, являются массивом определенных данных и команд, что позволяет с минимальным потреблением трафика получить всю необходимую информацию, правда есть несколько минусов;
    Это надо загружать толстый клиент и странички не индексируются поисковиком!
    2. Не использовать ajax вообще или использовать его по минимуму, что бы просто упростить работу, но не исключать возможность повсеместного использования этой технологии (точнее функции)

    Как и многие технологии она дает большие возможности, но как и все, если попадает “не в те руки”, то появляются такие программы блокировщики, которые лишают нас возможности посещать сайты с флеш анимацией, всплывающими окнами и как в перспективе, ajax`ом

  2. Жуков Кирилл says:

    Указано только два недостатка, причём очень умозрительных. Ни разу не сталкивался с навигацией на ajax в интернете.
    Открытие дополнительных окон, справок, подсказок, автопоиск, автозаполнение, автозагрузка картинок и т.п. - задачи в которых не требуется запись истории… в обычном случае сервер покажет устаревшую страницу.
    А Якоб Нильсен, моё мнение, устарел

  3. Key says:

    Хорошим тоном будет всегда реализовать функциональность сайта без js, а уж потом навешивать события для удобства пользователя. Пользователи с отключенным js, любители тыкать по ссылками средней кнопкой мыши и поисковики не страдают.
    А насчет ожиданий пользователя - все уже привыкли к ajax-интерфейсам, которые оформлены подобающим образом (как минимум js-ссылки выделены пунктиром).

  4. Nickproger says:

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

  5. Nickproger says:

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

  6. Алексей says:

    Дурака научи молиться он и голову разобьет.
    С Автором согласен, как только появилось определение AJAX появились маньяки, да именно маньяки которые бросились его тыкать куда не попадая. Заказчик помню хотел сайт полностью на AJAX. Еле еле переубедили. сказали что сделаем как хотите, но за раскрутку данного сайта никто не возьмется. Пытались говорить на его языке. еле еле переубедили.

    А вот для отдельных элементов рабочего интерфейса AJAX сам бог велел прикрутить. К примеру фильтр в таблице данных или хитрая поисковая форма. где еще до нажатии кнопки “поиск” отсекается 80% лишних данных

Напишите что Вы об этом думаете


*


*


rel=nofollow включен, спам не поднимет Page Rank Вашего сайта



Anti-Spam Image
Введите этот код, чтобы подтвердить, что вы человек
*

* — Обязательно для заполнения

Перейти на главную страницу