使用WebSocket
- 无跨域限制
- 需要服务端支持,成本高
通过localStorage通讯
- 同域的A和B两个页面
- A 页面设置localStorage
- B 页面可监听到localStorage 值的修改
代码演示
页面1:
页面2:
点击页面1按钮后,页面2的console:
通过 SharedWorker 通讯
- SharedWorker 是 WebWorker 的一种
- WebWorker 可开启子进程执行JS,但不能操作DOM
- SharedWorker 可单独开启一个进程,用于同域页面通讯
总结:
- WebSocket 需要服务端,成本较高
- localStorage 简单易用,推荐
- SharedWorker 调试不方便,不兼容IE11