16、网页应用与服务工作线程的数据交互及PWA评估工具

网页应用与服务工作线程的数据交互及PWA评估工具

1. 使用MessageChannel进行双向通信

在进行消息发送时,我们可以添加一个检查,以确定我们要发送消息的窗口是否就是发送原始消息的窗口。如果是,则跳过该窗口,继续处理下一个窗口。以下是相应的代码:

self.addEventListener('message', function (event) {
  console.log('SW: Message event fired');
  console.dir(event);
  console.log(`SW: Subscription status: ${event.data.subscription}`);
  // 获取所有客户端窗口
  self.clients.matchAll().then(clients => {
    // 遍历每个窗口
    clients.forEach(client => {
      if (client.id === event.source.id) {
        // 该窗口是否就是告知我们订阅事件的窗口?
        console.log(`SW: Skipping affected window (${client.id})`);
      } else {
        // 向窗口发送消息
        console.log(`SW: Notifying ${client.id}`);
        client.postMessage({ subscription: event.data.subscription });
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值