2014-11-04 4 views
0

Я реализую некоторый пользовательский таймер, который предназначен для подсчета указанного времени. Этот таймер должен хранить подсчитанное время, если пользователь вручную перезагрузит страницу. Эти части работают. Но после указанного времени (в этом случае 5 секунд) пользователь должен быть перенаправлен.Удалить значение из sessionStorage JavaScript

Для этого я использую sessionStorage для поддержания текущего подсчитанного времени. Но через 5 секунд я пытаюсь удалить элемент из sessionStorage, и он не работает!

Где я совершил ошибку? Как я могу удалить элемент из sessionStorage в моем случае? Благодаря

var currentTime = sessionStorage.getItem("currentTime"); 

     if (currentTime == null) { 
      currentTime = 0; 
     } 

     setInterval(function() { 
      currentTime++; 
      if (currentTime == 5) { 
       sessionStorage.removeItem("currentTime"); 

       location.reload(); 
      }     
      sessionStorage.setItem('currentTime', currentTime);    
     }, 1000); 

ответ

1

Проблема заключается в том, что location.reload() не прекращает выполнение JavaScript. Поэтому после того, как эта строка запущена, sessionStorage.setItem('currentTime', currentTime); все еще запущен. Чтобы исправить эту проблему, оберните эту строку в оператор else для if (currentTime == 5).

+0

Да, я также заметил. Наверное, я устал и не видел, какую глупую ошибку я совершил. Я решаю так: if (currentTime == 5) { currentTime = 0; location.reload(); } – kat1330

+0

Я установил currentTime = 0, когда currentTime стал целевым временем. – kat1330

Смежные вопросы