我们存储了一些数据localstorage,并且window.setInterval()每分钟定期更新它。在此期间我们不断地读取和写入数据。
是否可能会出现并发问题,因为我们正在使用setInterval(),因为多个选项卡可以同时修改数据localstorage?
编辑1:详细解释场景:
每个选项卡都针对localstorage一个键(例如xyz)写入一些数据,并且setInterval()存在于正在运行的 JavaScript 中,不断检查xyz键数据。如果该键存在一些数据,则setInterval回调会将其发送到后端。运行相同脚本的每个选项卡将读取密钥xyz,并在执行某些逻辑后将一些数据附加到现有值。
我怀疑可能会出现并发问题,例如一个选项卡可能正在读取密钥xyz并将数据添加到本地存储,而另一个选项卡可能同时执行相同的操作。现在两者都会尝试同时发送数据,因此我可能会在后端收到相同的数据两次。
编辑后添加:还有一种可能性,您可以尝试找出您的哪个页面/选项卡处于活动状态(您的页面),然后仅在活动选项卡上激活计时器,然后降低发生并发的机会。这是用于可见性检查的https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API api。
| 归档时间: |
|
| 查看次数: |
2844 次 |
| 最近记录: |