2014-01-30 37 views
11

如果您有两个浏览器选项卡打开到Soundcloud页面或带有Soundcloud iFrame的页面,并且一个选项卡正在播放,当您在另一个选项卡上按播放时,它会暂停第一个选项卡。 Howe到底是如何实现的?SoundCloud如何暂停其他标签?

回答

19

它使用本地存储来实现此目的。它存储在每个选项卡中播放或暂停的所有歌曲的JSON数据。只要您播放另一首歌曲,所有其他歌曲的播放状态都会设置为在本地存储器内暂停播放。很可能会触发一个localStorage事件,它会检查哪些歌曲需要暂停并暂停播放。

Soundcloud local storage viewed in Chrome

+3

哇,'localStorage'立即更新多个标签和广播事件之间?我想这是有道理的,只是从来没有想过这种情况。整齐。 –

+3

@AlexWayne也适用于Cookie。那么,不是广播事件的一部分。结合'setInterval'之类的东西,在这种情况下,它可以用作传统浏览器的后备。 – danronmoon