2008-10-02 6 views
32

Я запускаю браузерную игру на www.darknovagames.com. Недавно я работал над переформатированием сайта с помощью CSS, пытаясь получить все свои страницы для проверки в соответствии со стандартом HTML.AJAX и кнопка браузера Назад

Я занимался этой идеей о том, чтобы меню навигации слева от AJAX содержало страницы (вместо того, чтобы каждый раз вводить пользователя на отдельную страницу, требуя перезагрузки заголовка и навигационной панели, что почти никогда изменение), и я знаю, что если я это сделаю, я, вероятно, сломаю кнопки «Вперед»/«Назад» в браузере. Мой вопрос, я думаю, должен, должен ли я идти дальше и AJAX на сайте, тем самым требуя от пользователя использовать навигацию по сайтам, чтобы играть в игру, или я должен покинуть сайт, как он сейчас стоит, и использовать стандартные гиперссылки и вещи для навигации?

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

Я также открыт для предложений. Есть ли стандартный (желательно без традиционных фреймов) способ сделать только область тела сайта перезагрузкой, при этом все еще изменяя URL-адрес, чтобы пользователи могли добавлять закладки, пересылать/обратно и т. Д.? Это может также решить мою проблему. Я просто прошу лучшего решения здесь, а не ответа на конкретный вопрос.^_^

Благодаря

ответ

26

Если вы собираетесь включить AJAX, не делайте этого за счет наличия доступных URL-адресов для каждой важной страницы вашего сайта. Это основа навигационного сайта, который люди могут использовать.

Когда вы переплевываете все свои функциональные возможности в вызовы и обратные вызовы AJAX, вы в основном заставляете своих пользователей вводить один путь для доступа к функциям и содержимому, которое они хотят, что полностью противоречит тому, как веб должен функционировать. Люди полагаются на адресную строку и кнопку «Назад». Если вы переопределите все свои ссылки, чтобы ваш сайт был по существу единственной страницей, которая обновляется только через AJAX, вы ограничиваете возможность своих пользователей перемещаться по сайту и находить то, что им нужно. Это также не позволяет вашим пользователям не делиться тем, что они находят (что, в том числе, является точкой, верно?).

Подумайте о мысленной карте вашего сайта. Если они знают, что они вошли через домашнюю страницу, они отправились на поиски чего-то, затем они приземлились на странице игр, после чего они начали играть в определенную игру, это четыре разных единицы действия, которые взял пользователь. На каждой из этих страниц они могли сделать еще несколько меньших, более незначительных действий, но это основные единицы. Когда они нажимают кнопку «Назад», они должны ожидать возврата по пути, по которому они вошли. Если вы загружаете все эти страницы через вызовы AJAX, вы предоставляете сайт, чья функциональность работает вопреки ожиданиям пользователя.

Разбивайте свой сайт на каждую важную функцию (т. Е. Поиск, дом, профили, игры - это будет продиктовано вашим сайтом). Везде, где вы ссылаетесь на эти страницы, делайте это с помощью обычной ссылки и статического URL-адреса.

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

34

Использование Ajax для частей страницы, которые необходимо обновить, а не всю вещь. Для этого вы должны использовать шаблоны.

Если вы хотите сохранить кнопку «Назад» для различных изменений состояния на странице, объедините их с # ахорами, чтобы изменить URL-адрес (не заставляя браузер выдавать другой GET).

К примеру, в Gmail выглядит следующим образом:

mail.google.com/#inbox/message-1234

все мимо # была страница изменения состояния, что произошло через AJAX. Если я нажму «Назад», я снова вернусь в папку «Входящие» (опять же, без другого браузера GET)

+0

Высокий кончик ... спасибо. – dacracot 2008-10-02 18:22:09

2

Существует множество способов решить эту проблему, используя фанки-методы Javascript, часто включающие iframe, но я думаю, что в этой ситуации вам нужно чтобы спросить, почему вы используете AJAX. Действительно ли это сделает сайт более удобным для пользователя? Это звучит так, как будто вы используете его, потому что считаете его крутым (что само по себе не всегда плохо) не потому, что оно фактически добавит какую-то ценность вашим посетителям. С любого нормального веб-сайта нормальные гиперссылки практически всегда подходят для основной навигации. Это то, что люди ожидают, и я бы не рекомендовал вам обойти эти ожидания, основываясь на некоторых причудливых технологиях.

AJAX является удивительным и позволяет делать много замечательных вещей, изменение навигации по сайтам не является одним из них.

Хорошо сделано для решения этой проблемы, однако, существует множество сайтов, которые просто идут с AJAX и даже не задумываются об этом!

+0

Сайт уже использует AJAX на данный момент. Его браузерная игра, и статистика каждого пользователя обновляется на сервере каждые 15 минут, поэтому в зависимости от того, на какой странице они находятся, я AJAX в новой информации, чтобы страница была уже точной. – 2008-10-02 17:54:23

+0

Итак, вы уже используете его в тех местах, где это имеет смысл, я не думаю, что расширение его таким образом также имеет смысл. – roryf 2008-10-02 18:14:31

1

AJAX - это не лучшее решение для навигации именно по той причине, которую вы описываете. Хитрость для перезагрузки заголовка и навигатора минимальна по сравнению с трудностью нарушения пользовательского интерфейса навигации браузера.

Более подходящим примером AJAX было бы позволить пользователям играть в игру в главном окне, в то время как они могут просматривать список другого контента в навигационной панели. Вы можете загружать дополнительные элементы в навигационную панель через AJAX, не нарушая игровой процесс.

0

Я бы придерживался простых гиперссылок. Ваша мебель для страниц не должна учитывать большую часть HTML, поэтому это не большой выигрыш, исключающий его из запросов страниц. Создание каждого ресурса, адресуемого (т. Е. URL-адрес для каждого фрагмента контента, который может заинтересовать пользователя) является ключевой особенностью дизайна сети. Это означает, что кэширование может работать, и означает, что пользователи могут обмениваться закладками. Это заставляет Google работать, а также сайты социальных закладок.

Бреширование нескольких байтов HTML с последующих изменений страницы не стоит усилий, на мой взгляд.

5

Отъезд reallysimplehistory. Вики не обновлялись в течение 10 месяцев, но я был только в Ajax Experience 2008 и увидел на нем Брайана Дилларда presentation. Он говорит, что код 0.8 находится на жестком диске. Надеюсь, скоро он будет доступен для скачивания.

2

Возможно, вы захотите проверить; "Really Simple History" by Brad Neuberg ...

2

Попробуйте простое & Легкий PathJS lib. Это позволяет напрямую привязывать слушателей к якорям.

Пример:

Path.map("#/page").to(function(){ 
    alert('page!'); 
}); 
Смежные вопросы