Как сделать переменную подсчета постоянной в сеансах? - PullRequest
2 голосов
/ 14 ноября 2011

У меня есть статическая страница /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" сбрасывается в ноль.Как сделать так, чтобы «подсчет» был постоянным, чтобы при каждом вызове /choice использовалось текущее значение?

Я задал предыдущий вопрос для этого, но я думаю, что это не ясночто я хотел сделать, и ответы были сосредоточены на функции writeToStorage().Это правда, что если я вызову writeToStorage несколько раз за один сеанс, то

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

"count" увеличивается, но как только запускается /choice, счетчик сбрасывается в ноль.Я хотел бы, чтобы "рассчитывать" сохраняться.Благодаря.

Ответы [ 2 ]

5 голосов
/ 14 ноября 2011

Смт по этим строкам:

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

function writeToStorage() {

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

};

Итак, первая строка получает текущий счетчик локального хранилища или 0, если он не определен (если счет никогда не сохранялся, пользователь впервые пришел к вам 'страница), затем вы увеличиваете счетчик и сохраняете его.Затем запишите текущий счетчик в элементе.

1 голос
/ 14 ноября 2011
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;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...