Как сбросить состояние переменных при перемещении между страницами (Chrome Specific)?

Я работаю с API истории HTML5. Когда я нажимаю ссылку на новую страницу, а затем нажимаю кнопку "Назад". Я вижу переменные, которые сохраняют свое состояние между загрузками страниц.

Пример:

(function(namespace){
    var singlePageSessionId = 0;
    singlePageSessionId = new Date().getTime();

    namespace.SinglePageSessionId = function(){
        return singlePageSessionId; 
    }
}(window.namespace = window.namespace || {}))

Эта переменная singlePageSessionId должна быть установлена ​​один раз для фактической загрузки страницы. Однако, когда я нажимаю назад, а затем проверяю значение namespace.SinglePageSessionId, он сохраняет временную метку, когда я впервые зашел на сайт. Поскольку я перезапускаю JavaScript, я ожидаю, что переменная будет сброшена.

У меня либо есть фундаментальное неправильное понимание того, как движок javascript работает между страницами, либо здесь есть какое-то странное поведение.

Есть ли способ убедиться, что переменные сброшены?

1 ответ

Как бы я ни старался, я не смог воспроизвести проблему, о которой вы говорите. Локально у меня не было никаких проблем с возвращением и получением нового значения. Это то, что я сделал http://jsfiddle.net/itaymer/bqg3azx8/

(function(namespace) {
    var singlePageSessionId = new Date().getTime();

    namespace.SinglePageSessionId = function(){
        return singlePageSessionId; 
    }
}(window.namespace = window.namespace || {}));

document.querySelector(".pageSessionId").innerHTML = window.namespace.SinglePageSessionId();

Может быть, вы не смогли предоставить всю информацию о ситуации?

Другие вопросы по тегам