JS多页面同时提示功能如何写?

图片描述

如图所示浏览器结构,1,2,3为业务网页,黄色网页为无关网页
产品有一需求是这样的:
页面1,2,3为业务网页,需要添加提示功能,三分钟 轮询后台一次,有则提示,无则一切静止,要求三个页面“同时”产生提示音和提示文字,

  1. 如果三个页面同时存在于浏览器上,当前用户正在浏览哪个网页,当前网页会出现提示音和提示文字,其他网页只出现文字
  2. 如果三个页面同时存在于浏览器上且用户在浏览其他无关网页(三个页面都处未激活状态),则只会有页面2产生提示音,其他页面出现提示文字
  3. 用户打开页面的顺序是随机的,无序的,但是要求三个页面同时出现提示并且只能有

4.假如只打开一个网页,那一切好说,三分钟提示查一次后台,有就提示就可以了,但是,假如同时打开两个或三个页面,会有以上三点问题。
我想在打开第一个页面的时候,一切没问题,假如用户从第一个跳往第二个页面,传递一个时间参数,这样保证浏览器中的页面会同时请求接口,但是受限于浏览器,服务器和网速等问题可能会有误差,我不知道该怎么做了,而且经理不让用websocket。。。
我想问下大家有什么好方法吗?

阅读 2.3k
2 个回答

使用localStorage来共享状态吧
用a表示是不是有页面在处理
b表示是不是有提示
每个页面开一个定时器,每次去读一读对应的状态,并做相应的处理
每个页面失去不在当前的窗口的时候,也去写一写对应的状态

可以使用webworker中的sharedworker 实现多个页面共享一个浏览器的额外线程 在这个线程中统一分发给其他页面

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