Какие у меня есть варианты изменения строки запроса в URL-адресе и обновления истории браузера?

Есть ли способ изменить URL-адрес или добавить больше истории к «кнопке возврата» без необходимости обновлять всю страницу?

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

Что возможно сегодня? Я слышал, что кое-что из этого может быть в HTML5, но я не проверял, что поддерживается в текущих браузерах.


person halfbit    schedule 28.08.2010    source источник


Ответы (4)


Я думаю, вы можете использовать window.location.hash для отслеживания #part страницы, в вашем случае #state1, #state2 и так далее.

window.location.hash = '#state' + (++ stateN) установить и stateN = parseInt(window.location.hash.match(/\d+$/)[0])

См. On - window.location.hash - Change? для получения дополнительных сведений о том, как обнаружить изменения хэша местоположения.

person Ming-Tang    schedule 28.08.2010

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

Другой вариант - предоставить собственную кнопку «Назад», которая знает, на какую страницу возвращаться.

person dj_segfault    schedule 28.08.2010

Ответ на этот вопрос будет более или менее таким же, как мои ответы на эти вопросы:

Итак, два проекта, которые вы, вероятно, захотите посмотреть, объясняют весь процесс хеш-обмена и его использование с ajax:

  • История jQuery (использование хэшей для управления состоянием страниц и привязки к изменениям для обновления страницы ).

  • jQuery Ajaxy (расширение ajax для истории jQuery, позволяющее создавать полные веб-сайты ajax, ненавязчивый и изящно разлагаемый).

person balupton    schedule 28.08.2010

Для обновления истории браузера можно использовать встроенный в диспетчер сценариев ASP.NET. Полное руководство по выполнению этого действия находится здесь:

http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history.

person halfbit    schedule 05.10.2010