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

голоса
32

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

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

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

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

благодаря

Задан 02/10/2008 в 18:42
источник пользователем
На других языках...                            


10 ответов

голоса
34

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

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

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

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

все мимо # было страница изменения состояния, что произошло через AJAX. Если я нажимаю назад, я пойду в почтовый ящик снова (опять же, без другого браузера ГЭТ)

Ответил 02/10/2008 в 18:48
источник пользователем

голоса
26

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

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

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

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

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

Ответил 02/10/2008 в 19:01
источник пользователем

голоса
5

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

AJAX Разбивка & Кнопка назад

Это, кажется, лучше один там, работает с JQuery и Mootools.

Ответил 13/01/2012 в 14:42
источник пользователем

голоса
5

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

Ответил 02/10/2008 в 19:09
источник пользователем

голоса
2

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

Пример:

Path.map("#/page").to(function(){
    alert('page!');
});
Ответил 19/04/2012 в 19:02
источник пользователем

голоса
2

Yo может проверить; «Действительно простая история» Брэд Нойберг ...

Ответил 20/11/2008 в 10:26
источник пользователем

голоса
2

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

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

Молодцы для сбора по этой проблеме, хотя, Theres много сайтов, что там просто идти вперед с AJAX и даже не думать об этом!

Ответил 02/10/2008 в 18:50
источник пользователем

голоса
1

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

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

Ответил 02/10/2008 в 18:51
источник пользователем

голоса
0

Если вы готовы дать JQuery выстрел, этот учебник может помочь .

Ответил 28/10/2009 в 14:30
источник пользователем

голоса
0

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

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

Ответил 02/10/2008 в 18:54
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more