如何在会话中使计数变量持久化?

时间:2011-11-14 14:28:56

标签: javascript session

我有一个静态页面/story,其中有一个按钮,显示“做出您的选择”,由/choice处理。在/choice中,我在标题

中有此脚本
var count = 0;

function writeToStorage()
{ 
  var user = "user" + count;
  count++;
  localStorage.setItem("chooser", user);

  document.getElementById("form_chooser").value = user;  
};

因此,/choice每次调用/story时,“count”将重置为零。如何使“count”持久化,以便每次调用/choice时都使用当前值?

我问previous question这个问题,但我认为不清楚我想做什么,答案集中在函数writeToStorage()上。确实如果我在一个会话中多次呼叫writeToStorage

writeToStorage();
writeToStorage();
writeToStorage();

“count”递增但是只要/choice运行,计数就会重置为零。我想“数”坚持下去。感谢。

2 个答案:

答案 0 :(得分:5)

沿着这些方向发展:

    var count = localStorage.getItem("count") || 0;

function writeToStorage() {

    count++;
    localStorage.setItem("count", count);
    document.getElementById("form_chooser").value = "user" + count;

};

因此,第一行获取当前本地存储计数或0(如果未定义)(如果计数从未存储过,用户第一次来到您的页面),则递增计数并保存。然后在元素中写入当前计数。

答案 1 :(得分:1)

function storage (){
    var canStore = true;
    if (typeof(localStorage) == 'undefined' ) {
        canStore = false;
    }
    return canStore;
};

function getStorageVal(key){
    if (storage()) {
        return localStorage.getItem(key);   
    }
}

var count = getStorageVal('chooser');
count++;
var user = "user" + count;

localStorage.setItem("chooser", user);

document.getElementById("form_chooser").value = user;  
相关问题