LocalStorage:锁定存储事件

时间:2019-05-27 08:56:58

标签: javascript locking local-storage

我正在与localStorage一起在同一资源管理器中的选项卡之间传播信息。

我实际上有一个正在执行某些操作的存储侦听器,其想法是在事件被处理后立即删除,因为我不想对其进行两次处理


  var storageListener = function(storageEvent) {

    var data = localStorage.getItem(storageEvent.key);
    if(data != null){
      // some code
      localStorage.removeItem(storageEvent.key);
    }
  }

  window.addEventListener('storage', storageListener);

我的问题很简单。如果我的应用程序运行5次,我将执行该代码5次。

我已阅读本地存储规范:https://www.w3.org/TR/webstorage/#the-localstorage-attribute

他们说:

  

由于使用了存储互斥锁,因此多个浏览上下文将能够同时访问本地存储区域,以使脚本无法检测到任何并发脚本执行情况

据我了解,无法检测到事件监听器抛出的其他事件实例(由于我的英语不完美,我希望我错了!)

您知道在我的活动中是否可以放置“锁”或类似的东西,以便仅处理一次作业?

非常感谢

编辑:我已经看到一些可行的手工解决方案,但是它们都已经有7或8年的历史了。现在有一种通用的方法吗? (或者他们是否在localStorage中做了我没有注意到的本地操作)?

0 个答案:

没有答案