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

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

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

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

Ответы [ 4 ]

2 голосов
/ 28 августа 2010

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

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

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

0 голосов
/ 05 октября 2010

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

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

0 голосов
/ 28 августа 2010

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

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

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

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

0 голосов
/ 28 августа 2010

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

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

...