2012-10-08 55 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

你可能想看看你的业务逻辑。有没有其他时间您要清除本地缓存?例如,如果它在页面最初加载时希望清除本地存储?我不知道你的应用程序,所以我不能通过逻辑思考太多,但也许你可能会在本地存储中获得某种到期值,并定期扩展它。如果页面被杀死,那么它不会被扩展,并且在页面加载时,你可以检查到期变量,如果它是无效的,清除本地存储。 –

相关问题