JavaScript - bfcache / pageshow event - event.persisted sempre definido como falso?

Em um aplicativo da Web Java / SpringMVC / JSP / jQuery padrão, estou tentando detectar um evento "Back" (ou history.go (-1)), para atualizar (AJAX) um conteúdo de componente / painel de resumo quando Volto para uma página (onde podemos alterar os dados de back-end exibidos pelo componente de resumo).

Eu tentei o seguinte em JavaScript (seguindo algumas postagens no StackExchange sobre como fazer isso):

<script type="text/javascript">
$(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");
        }
    });
});
</script>

Estou executando o OpenSUSE Linux e já experimentei isso com o FireFox e o Chrome (versões mais recentes), mas toda vez que o evento épersisted atributo está definido comofalse (Eu posso ver isso no console do JavaScript e pelos alertas que aparecem no código acima). Sempre, quero dizer, independentemente de ter sido carregado do servidor ou mostrado novamente pelo botão Voltar (ou pelo link 'Voltar').

Minha intenção era fazer uma chamada AJAX para recarregar o componente / painel de resumo com os dados atualizados do servidor se a página estivesse aparecendo através do botão Voltar ouhistory.go(-1) ligar.

Eu também tentei configurar um manipulador de descarregamento (que não faz nada) para evitar que a página seja colocada no bfcache, mas ainda parece estar mostrando uma versão em cache do bf eoevent.persisted (ouevent.originalEvent.persisted) está configurado parafalse.

Esta propriedade é gerenciada corretamente no Linux? Estou fazendo algo estúpido no meu código? Qualquer ajuda ou idéias seriam muito apreciadas, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion