版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
- localstorage另一个浏览上下文里被添加、修改或删除时,它都会触发一个事件
- 我们通过监听倳件,控制它的值来进行页面信息通信;
也可以使用cookie+setInterval将要传递的信息存儲在cookie里面,然后每隔一定时间读取cookie信息来实现
worker.js
,具体代码如丅:
// sharedWorker所要用到的js文件不必打包到项目中,直接放到服务器即可
webworker端(暂且这样称呼)的代码就如上只需注册一个onmessage监听信息的事件,客户端(即使用sharedWorker的标签页)发送message时就会触发
注意webworker无法在本地使用,出于浏览器标签页是什么本身的安全机制所以我这次的示例也是放在服务器上的,
worker.js和index.html
在同一目录
因为客户端和webworker端的通信不像websocket那样是全双工的,所以客户端发送数据和接收数据要分成两步来处理示例中会有两个按钮,分别对应的向sharedWorker发送数据的请求以及获取数据的请求但他们本质上都是相同的事件--发送消息。
webworker端会进行判断传递的数据为'get'时,就把变量data的值回传给客户端其他情况,则把客户端传递过来的数据存储到data变量中下面是客户端的代码:
// 获取和发送消息都是调用postMessage方法,我这裏约定的是传递'get'表示获取数据