BestDI / BestDI.github.io

Mia's Home
https://bestdi.github.io
1 stars 0 forks source link

Waht??? 跨页签通信??? #26

Open BestDI opened 4 years ago

BestDI commented 4 years ago

会有一些场景, 会存在跨页签之间使用的场景, 比如外嵌入了别的系统的功能, 我们在别人的界面完成输入后, 如何把数据回给我自己的界面?

其使用方式也无非这么几种: localstorage 进行监听变化, prologue, webworker, sharedWorker, 轮询检测Cookie的操作等等.

对于同源页面,常见的方式包括:

  • 广播模式:Broadcast Channe / Service Worker / LocalStorage + StorageEvent
  • 共享存储模式:Shared Worker / IndexedDB / cookie
  • 口口相传模式:window.open + window.opener
  • 基于服务端:Websocket / Comet / SSE 等

而对于非同源页面,则可以通过嵌入同源 iframe 作为“桥”,将非同源页面通信转换为同源页面通信。

在此过程中发觉的 jsCookie插件还是很不错的. "js-cookie": "^2.2.1",