若在两个不同的选项卡中打开同一个页面,如何防止javascript运行两次


How to prevent javascript from running twice if same page is opened in two different tabs?

我有一个用php制作的网站,它调用javascript文件来检查网站通知,然后将其作为浏览器通知发送(如Mozilla的Firefox通知、Chrome桌面通知等)。它运行得很好,一些用户要求提供Chrome通知。我制作了一个使用相同代码的基本chrome通知,当人们不使用该网站时,它非常有效。然而,问题是当它们同时运行时。在该网站上使用该扩展的用户发现自己收到了双重通知。

如果另一个处于活动状态,有没有办法确保两个代码都不运行?

谢谢!

最好的方法是在服务器端将警报标记为已读。这样的话,如果我打开了Firefox和Chrome,他们去拉警报,无论谁先到达那里,都会将通知标记为已读,这样其他人就不会提醒它。

您可以设置cookie。如果一个脚本正在运行,则设置cookie。当您开始执行代码时,首先检查是否设置了cookie?如果是,则表示另一个脚本正在运行。如果未设置cookie,则开始执行代码
希望能有所帮助。


非常感谢。