Существуют реализации для history.back в Ajax Micrososft и jQuery (http://www.asual.com/jquery/address/). У меня уже есть jQuery и asp.net ajax включенный в мой проект, но я не уверен, какая реализация history.back лучше.
Лучше для меня:
Кто-либо знает, какой лучше?
Править:
Другим плагином jQuery является http://plugins.jquery.com/project/history, Он рекомендуется в книге Поваренную книгу JQuery. Этот работал хорошо до сих пор.
Одна из альтернатив jQuery Address - хороший плагин jQuery history. Есть также URL Utils.
Ссылка: История AJAX и закладки.
.Если вы строите ASP. NET, то использование ASP.NET Ajax Framework дает вам много преимуществ и простой API для использования серверной стороны.
Ниже приведен пример использования Browser History с ASP.NET Ajax
Create a Facebook-подобной AJAX-галереей изображений
Оба варианта имеют широкую поддержку в браузерах. Для меня проще интегрировать Microsoft AJAX Framework в страницу ASP.NET, поэтому опять же если у вас есть страница .aspx, то может быть проще работать с ASP.NET AJAX
. Если вам не нужен именно AJAX, т.е. достаточно обновления только частей сайта по запросу, то вы можете использовать невидимый iframe
в качестве целевой для загрузки сгенерированного HTML-файла, содержащего только JS-скрипт, который обновляет/удаляет "обновляемые" части сайта. Это кросс-браузерное решение и не требует опроса адресов.
Пример, но не в ASP: kociszkowo.pl (польский сайт)
Когда вы кликаете туда в иконке раздела и ваш браузер поддерживает javascript, ссылка изменяется перед получением - цель меняется на iframe и href суффиксом .dhtml, чтобы сообщить серверу, что нас интересует специальная версия страницы. Если вы нажмете кнопку Back в js-оборудованном браузере, то предварительно извлеченная страница iframe будет загружена из кэша. Просто, но требует некоторых решений на архитектурном уровне.
Эта модификация ссылки здесь не имеет отношения к делу, это просто результат объединения мира JS/non-JS.
.По моему опыту, лучший вариант - использовать тот же, что и большинство (если не все) ваших звонков на аякс. Например, если вы используете asp:UpdatePanel's, используйте MS - если вы используете jQuery.ajax, используйте плагин истории jQuery. Если вы делаете микс (которого я старался избегать в своих проектах), я бы лично протестировал его с обоими и посмотрел, какой из них ведет себя лучше - если они оба тестируют хорошо, то это немного предпочтительнее. Кто-то может поспорить, что у Microsoft лучше поддерживается, но плагин истории jQuery может стать более полезным и более зрелым.
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx