2014-11-04 51 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);仍在運行。要解決此問題,請將該行包裝在if (currentTime == 5)的else語句中。

+0

是的,我也注意到了。可能我很累,並沒有看到我犯了什麼愚蠢的錯誤。我是這樣解決的:if(currentTime == 5){current_time = 0; currentTime == 5} {current_time = location.reload(); } – kat1330 2014-11-04 21:42:54

+0

當currentTime成爲目標時間時,我設置currentTime = 0。 – kat1330 2014-11-04 21:43:37