前端跨页面通信总结
                    Contents
                    
                
                
            详解看面试官:前端跨页面通信,你知道哪些方法?,这里只做总结。
在浏览器中,每个Tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象也不会在多个Tab页间共享。但有些场景,需要Tab间之间同步一些数据。
同源页面间的通信
广播模式
即一个页面将消息通知给一个“中央站”,再由“中央站”通知给各个页面。
- 
BroadCast Channel
创建一个用于广播的通信频道。当所有页面都监听同一频道的消息,
 - 
Service Worker
多页面可以共享一个Service Worker ,将Service Worker作为消息的处理中心。
 - 
LocalStorage
消息写入到LocalStorage 中;然后在各个页面内,通过监听
storage事件接收通知。 
共享存储+长轮询方式
共享存储空间,但无法主动通知,需要通过轮询方式,获取最新数据。
- 
Service Worker
 - 
IndexedDB
 - 
cookie
 
口口相传模式
使用window.open打开页面时,方法会返回一个被打开页面window的引用。而在未显示指定noopener时,被打开的页面可以通过window.opener获取到打开它的页面的引用
- window.open + window.opener
 
非同源页面之间的通信
可以通过嵌入同源 iframe 作为“桥”,将非同源页面通信转换为同源页面通信