web 多 tab 页面中有消息模块,如何保证只有一个 tab 会发起请求?

chrome 级别 的 tab

想问问有什么开源库实现这样的逻辑。比如说

  1. 活跃和非活跃按不同的频率
  2. 多页面保证只有一个页面发送请求,类似于只有活跃页面发请求,或者说最后一个运行中的活跃页面发起请求。
  3. 支持轮询 和 websocket。

我的想法有两个

  1. 一个是 sw 直接拦截请求,通过 sw 去发起。
  2. 另一个就是维护活跃队列,定时选举。人为保证存在一个页面发起请求。

但是还是想先嫖一个开源的。

阅读 1.6k
2 个回答

你只考虑了在一个浏览器 多 tab 这个场景。
按照你的需求,我大概猜到,你是想做消息发送,只有一个线程可发。其他的只接收。或者甚至不接收,不活跃。
但你有想过,如果用户用多个浏览器,相同账号,相同页面,会怎么?
所以,想通过前端解决这个问题,这种想法本身就是错误的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题