跨标签页通讯
不同标签页间的通讯,本质原理就是去运用一些可以 共享的中间介质,因此比较常用的有以下方法:
通过父页面
window.open()和子页面postMessage- 异步下,通过
window.open('about: blank')和tab.location.href = '*'
- 异步下,通过
设置同域下共享的
localStorage与监听window.onstorage- 重复写入相同的值无法触发
- 会受到浏览器隐身模式等的限制
设置共享
cookie与不断轮询脏检查(setInterval)借助服务端或者中间层实现
浏览器架构
用户界面
主进程
内核
渲染引擎
JS引擎- 执行栈
事件触发线程
- 消息队列
- 微任务
- 宏任务
- 消息队列
网络异步线程
定时器线程
Cao Note