企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 18.如何实现同一个浏览器多个标签页之间的通信 一:websocket通讯 全双工(full-duplex)通信自然可以实现多个标签页之间的通信 二:定时器setInterval+cookie 在页面A设置一个使用 setInterval 定时器不断刷新,检查 Cookies 的值是否发生变化,如果变化就进行刷新的操作。 三:使用localstorage localstorage是浏览器多个标签共用的存储空间,所以可以用来实现多标签之间的通信(ps:session是会话级的存储空间,每个标签页都是单独的)。 直接在window对象上添加监听即可: ~~~ window.onstorage = (e) => {console.log(e)} // 或者这样 window.addEventListener('storage', (e) => console.log(e)) ~~~ 四:html5浏览器的新特性SharedWorker 普通的webworker直接使用new Worker()即可创建,这种webworker是**当前页面**专有的。然后还有种共享worker(SharedWorker),这种是可以多个标签页、iframe共同使用的。 SharedWorker可以被多个window共同使用,但必须保证这些标签页都是同源的(相同的协议,主机和端口号)