在javascript

时间:2017-09-08 10:11:21

标签: javascript multithreading local-storage

在过去的好时光中,Javascript是单线程的。避免线程协调的恐怖是相对简单的

不幸的是,现在我处于需要使用本地存储在多个选项卡之间共享信息的位置。我的理解是chrome在不同的线程中运行每个选项卡。需要在计时器上更新此信息。我想确保每个标签都没有更新日期,但每个时间段只更新一次,因为更新成本很高(在后端)

我的方法是在共享的本地存储中有一个名为' nextUpdateTime'的变量,并在每个标签中有一个定期轮询这个的线程。如果时间超过下一个更新时间,则可以调用更新方法(并更新nextUpdateTime)。在经典的javascript执行引擎上,这只会起作用,但现在我遇到了Chrome和WorkerTheads的问题。

理想情况下,我会有一个支持操作的互斥锁,它允许我构造某种原子操作。我不知道如何在Javascript中执行此操作。 LocalStorage是线程安全的(谢天谢地),但我无法找到对它进行原子操作。

有没有人对如何处理这个问题有一个很好的建议?

0 个答案:

没有答案
相关问题