浏览器多个标签页之间的通信

1,734 阅读1分钟

浏览器多个标签页之间的通信

  • 针对的多页面应用

  • 4种方法(浏览器数据存储、服务器方式)

    • localStorage
    • cookie + setInterVal
    • webscoket
    • share worker

localStoarge

  • 在一个页签内调用localStorage.setItem(key,value)添加或者修改内容,在另外一个页签内监听storage事件,可以通过事件对象event获取到信息。
事件对象event包括一下信息:
-   domian
-   newValue
-   oldValue
-   key

cookie

  • 在A页面将需要传递的信息存储在cookie种,在B页面设置setInterVal,以一定的时间去读取cookie的值

websocket

  • 多页签都监听服务器的推送事件来获得其它页签发送的数据

share worker

  • 普通的webworker直接使用new Worker()即可创建,这种webworker是当前页面专有的。然后还有种共享worker(SharedWorker),这种是可以多个标签页、iframe共同使用的。SharedWorker可以被多个window共同使用,但必须保证这些标签页都是同源的(相同的协议,主机和端口号)