Как сбросить состояние переменных при перемещении между страницами (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();
Может быть, вы не смогли предоставить всю информацию о ситуации?