网友回复
主要有以下几种:
1、BroadCast Channel
// 创建 Broadcast Channel 对象 const channel = new BroadcastChannel('my_channel'); // 发送消息 channel.postMessage({message: 'Hello, world!'}); //在页面2中: // 创建 Broadcast Channel 对象 const channel = new BroadcastChannel('my_channel'); // 接收消息 channel.addEventListener('message', function(event) { console.log('收到消息:', event.data); });
2、Service Worker
// 注册 Service Worker if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js').then(function(registration) { console.log('Service Worker 注册成功:', registration.scope); }).catch(function(error) { console.log('Service Worker 注册失败:', error); }); } // 在 Service Worker 中添加消息监听 self.addEventListener('message', function(event) { console.log('Service Worker 接收到消息:', event.data); // 向其他标签页发送消息 clients.matchAll({type: 'window'}).then(function(clients) { clients.forEach(function(client) { client.postMessage(event.data); }); }); }); // 在标签页中添加消息监听 navigator.serviceWorker.addEventListener('message', function(event) { console.log('标签页接收到消息:', event.data); }); // 在标签页中发送消息给 Service Worker navigator.serviceWorker.controller.postMessage('Hello, Service Worker!');
3、LocalStorage window.onstorage 监听
// 存储数据到LocalStorage localStorage.setItem('my_key', 'my_value'); // 监听LocalStorage变化 window.addEventListener('storage', function(event) { console.log('LocalStorage变化:', event.key, event.newValue); }); //在页面B中: // 更新LocalStorage中的数据 localStorage.setItem('my_key', 'new_value');
4、Shared Worker 定时器轮询(setInterval
在 Shared Worker 中worker.js:
let timerId = null; function startPolling() { timerId = setInterval(function() { console.log('轮询任务'); }, 1000); } function stopPolling() { clearInterval(timerId); } self.addEventListener('connect', function(event) { const port = event.ports[0]; // 监听消息 port.addEventListener('message', function(event) { if (event.data === 'start') { startPolling(); } else if (event.data === 'stop') { stopPolling(); } });...
点击查看剩余70%
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?