2009-11-04 5 views
2

Я пишу веб-приложение, которое извлекает много данных с помощью AJAX, который существенно изменяет загруженную страницу в зависимости от того, на какую кнопку нажал пользователь (скажем, что нажатие кнопки button1 state0 to state1 и т. д.)Выполнение кнопки «Назад в браузере» при использовании запросов AJAX

Кроме того, если номер кнопки передается серверу как переменная GET, сервер возвращает страницу в правильном состоянии.

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

Итак, мой вопрос: как я могу заставить кнопки браузера/вперед работать?

Возможно ли предоставить браузеру правильный URL-адрес при каждом изменении состояния; но не перегружать страницу?

Обратите внимание, что этот вопрос касается только кнопок браузера назад/вперед. Я могу создавать пользовательские кнопки назад/вперед, но это не то, что я хочу делать.

+2

Попробуйте Google для «обратной кнопки AJAX» - вы получите массу результатов. Эта проблема хорошо известна, и есть много способов ее исправить. –

ответ

8

Потратьте некоторое время, чтобы пройти через some. of. the. previous. questions. on. this. topic.

Подсказка: используйте хеш-мужа! (window.location.hash что есть)

2

Вам нужно будет использовать # возможности вашего URL-адреса для хранения ваших промежуточных запросов Ajax в истории браузера. Если вы используете любую Javascript-библиотеку, вероятно, будет решение в самой библиотеке или в виде расширения/плагина сообщества.

Например, есть плагин для jQuery here.

Google для истории браузера AJAX

Смежные вопросы