Подтвердить что ты не робот

AJAX и кнопка браузера Назад

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

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

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

Другое решение:

AJAX Pagination и Back Button

Кажется, это лучший из них, работает с JQuery и Mootools.

Ответ 5

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

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

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

Ответ 6

Возможно, вы захотите проверить; "Действительно простая история" Брэда Нойберга...

Ответ 7

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

Пример:

Path.map("#/page").to(function(){
    alert('page!');
});

Ответ 8

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

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

Ответ 9

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

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