2012-10-08 90 views
0

我正在使用HTML5 localStorage來跟蹤我的應用程序會話。以下是我的代碼示例。從任務管理器中查殺IE進程時清除localStorage

   if(typeof(Storage)!=="undefined") 
      { 
       if(sessionStorage.lastname=="Smith") 
       { 
        alert("your Session is still active"); 

       } 
       else{ 
       sessionStorage.lastname="Smith"; 
        alert("Last name: " + sessionStorage.lastname); 
       } 
       } 
       else 
       { 
       alert("Sorry, your browser does not support web storage..."); 
       } 

上面的代碼很好用。但是當我從Task Manage> kill IE process關閉我的IE瀏覽器,然後在新的瀏覽器中再次打開我的應用程序時,我發現我的舊localStorage值依然存在,它不會刪除我之前會話的localStorage。

當用戶從TaskManager中終止瀏覽器時,如何刪除localStorage?

+1

SessionStorage將一直存在,直到瀏覽器打開。如果您打開瀏覽器,則不存在會話存儲。沒有舊價值的機會存在。 – kannanrbk

+0

我使用的IE8,不能與sessionStorage一起去,因爲在IE8>如果你做新的會話,它會創建新的瀏覽器會話,你不能共享存儲數據 – user1591156

回答

0

當瀏覽器通過任務管理器終止時,javascript進程隨後被終止。當JavaScript被殺死時,它不會觸發您可以採取行動的事件。

http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/232931/is-it-possible-detect-browser-process-termination#

+0

謝謝斯科特,有什麼替代,我可以使用哪些幫助達到我的要求。 – user1591156

+0

你可能想看看你的業務邏輯。有沒有其他時間您要清除本地緩存?例如,如果它在頁面最初加載時希望清除本地存儲?我不知道你的應用程序,所以我不能通過邏輯思考太多,但也許你可能會在本地存儲中獲得某種到期值,並定期擴展它。如果頁面被殺死,那麼它不會被擴展,並且在頁面加載時,你可以檢查到期變量,如果它是無效的,清除本地存儲。 –

相關問題