如何在浏览器崩溃时清除本地存储

How to clear localStorage on browser crash?

本文关键字:清除 存储 崩溃 浏览器      更新时间:2023-09-26

我有一个具有实时聊天功能的应用程序。当它打开时,聊天将在一个新的弹出窗口中。当这个窗口打开时,我需要阻止用户打开另一个聊天窗口(他们一次只能进行一个聊天)。所以,我有一个简单的标志,下面的代码触发弹出加载:

localStorage.setItem('chatOpen', true);
window.onunload = function() {
    localStorage.setItem('chatOpen', false);
};

我在打开弹出窗口之前检查这个标志。它正常工作,但如果浏览器崩溃,窗口。Onunload事件没有触发,然后用户再也不能打开聊天窗口了。我该如何补救呢?

如果你稍微改变一个逻辑:启动一个计时器,它每秒更新时间戳…另一方面,如果current time - timestamp > 1秒,则表示最后一页已关闭

伪代码:

on load : 
 if localStorage has value with key chattimestamp and datetime.now -localstorage[chattimestamp] < 1 sec
      another instance is oppened
 else
    settimer that every 1 sec update timestamp to localstorage[chattimestamp]

我认为你可以选择1秒以上,实际上5-10秒应该可以