Существует проблема с кнопкой «Назад» браузера и моего приложения. Webapp использует ajax и стандартные запросы. Это все происходит таким образом:Как объяснить браузеру запомнить запрос Ajax?
Я сделать запрос GET на
list.jsp
страницы - это первая страница, которую вы видите в приложении, если вы проверить ссылку временного я приведенную ниже. Теперь мы на странице 1 (вся страница была перезагружена)Я делаю запрос Ajax (нажмите на ссылку - например, номер страницы) на страницу
4
. Только часть страницы была перезагружена - все в порядке. Таким образом, теперь мы находимся на странице 4Я делаю запрос Ajax (щелкните по ссылке - то есть номер страницы) на страницу
5
. Только часть страницы была перезагружена - все в порядке. Таким образом, теперь мы находимся на странице 5Теперь я нажимаю кнопку «назад» браузера (один шаг назад к истории) - ничего не произошло. Консоли браузера не показывают никаких изменений.
Этот шаг я снова нажимаю на кнопку «назад» браузера. Оказывается, этот шаг выполняется правильно. Произошел запрос GET.
Что происходит? Почему браузер не помнит изменения, которые были атакованы на шаге 3? Как я могу указать браузеру сделать step back to history
на изменения, внесенные с помощью запроса ajax?
Вы можете проверить его онлайн temp link. Просто попробуйте пойти по страницам. Розовый квадрат - это текущий индикатор страницы.
обновление 1:
Этот код инициализации после того, как загрузчик закончил загрузку Recources.
$(function() {
$(window).on('hashchange', refreshByHash);
refreshByHash();
function refreshByHash() {
var hash = window.location.hash;
console.log("hash = " + hash.substring(1));
/* $.ajax({
url : 'paginator.action?page=' + hash, // action
type : 'GET', //type of posting the data
dataType : 'html',
async: true,
success : function(htmlData) {
$('#paginator').html(htmlData);
},
error : function(xhr, ajaxOptions, thrownError) {
alert('An error occurred! ' + thrownError);
},
}); */
}
});
Используете ли вы сырой javascript или какую-то фреймворк, например angularjs или jquery? –
Также будет встроен встроенный [MCVE] (http://stackoverflow.com/help/mcve), поэтому люди, отвечающие на ваш вопрос, не должны создавать пример с нуля –
@hege_hegedus Я использую jquery и javascript для изменения разбивки на страницы. Ядром является Java. – rozero