JavaScript - событие bfcache / pageshow - event.persisted всегда имеет значение false?
В стандартном веб-приложении Java / SpringMVC / JSP / jQuery яЯ пытаюсь обнаружить "Назад» (или history.go (-1)), чтобы обновить (AJAX) содержимое итогового компонента / панели, когда я вернусь на страницу (где мы можем изменить внутренние данные, отображаемые компонентом итога).
Я попробовал следующее в JavaScript (после нескольких сообщений на StackExchange о том, как этого добиться):
$(document).ready(function() {
window.onpageshow = function(event) {
console.log("Event:");
console.dir(event);
if (event.persisted) {
alert("non-jQuery - back to page - loaded from bfcache");
} else {
alert("non-jQuery - loaded page from server");
}
};
$(window).on("pageshow", function(event){
console.log("Event:");
console.dir(event);
if (event.originalEvent.persisted) {
alert("jquery - back to page - loaded from bfcache");
} else {
alert("jquery - loaded page from server");
}
});
});
Я использую OpenSUSE Linux и пробовал это с FireFox и Chrome (последние версии), но каждый разpersisted
атрибут установлен вfalse
(Я вижу это в консоли JavaScript и по всплывающим предупреждениям из приведенного выше кода). Я имею в виду каждый раз, независимо от того, был ли он загружен с сервера или снова показан с помощью кнопки «Назад» (илиBack» ссылка на сайт).
Я намеревался сделать AJAX-вызов для перезагрузки итогового компонента / панели с обновленными данными с сервера, если страница отображалась с помощью кнопки «Назад» илиhistory.go(-1)
вызов.
Я также попытался установить обработчик выгрузки (который ничего не делает), чтобы предотвратить помещение страницы в bfcache, но он по-прежнему показывает версию с кэшированием bf иevent.persisted
(или жеevent.originalEvent.persisted
) установлен в.false
Правильно ли управляется это свойство в Linux? Я делаю что-то глупое в моем коде? Любая помощь или идеи будут высоко ценится, спасибо!