首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跨多个浏览器窗口创建增量计数器?

如何跨多个浏览器窗口创建增量计数器?
EN

Stack Overflow用户
提问于 2022-05-28 01:23:12
回答 1查看 36关注 0票数 1

我尝试使用localStorage在多个窗口上同步计数器,并且发现由于localStorage没有锁,所以可能会出现赛车问题。

代码语言:javascript
复制
const root = document.getElementById('root');
let thisCounter = 0;
const interval = setInterval(() => {
  const counter = parseInt(localStorage.getItem('counter') || 0, 10);
  localStorage.setItem('counter', `${counter + 1}`);
  ++thisCounter;
  root.innerHTML = `global: ${counter + 1}, this: ${thisCounter}`;
  if (thisCounter >= 500) {
    clearInterval(interval);
  }
}, 100);

当我打开三个Chrome浏览器窗口(分离了线程)时,看来计数器最终会运行到1498或1497,而不是1500。

EN

回答 1

Stack Overflow用户

发布于 2022-05-28 01:33:36

分开读和写操作。

您可以使用JSON数组结构为每个浏览器窗口指定用于写操作的各个变量。当您需要读取时,您可以访问所有单个变量并将它们添加到一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72412289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档