小编Ahm*_*zzy的帖子

后台同步未在 serviceworker 中触发事件

我的同步事件没有触发,我使用Chrome 网络服务器localhost:5000上的台式 PC 上提供页面,并使用 fetch api 在单独的端口localhost:1337上将数据发布到本地开发服务器。已经关闭了我的 wifi、chrome 网络服务器以及 chrome devtool 中的离线切换,但仍然没有触发我的事件。

这是我在 serviceworker.js 片段中用于同步的代码

self.addEventListener('sync', function(event) {   
  if (event.tag == 'syncrhronizeOfflineData') 
  {     
    event.waitUntil(syncrhronizeData());   
  } 
}); 
async function syncrhronizeData() {   
  console.log('now synchronizing data...');   
  //first get all favourites in the localDB and post them to server 
  const favData = await window.localforage.getItem('restaurants')
    .filter((r) => r.isoffline );   
  console.log('favdata', favData); 
}
Run Code Online (Sandbox Code Playgroud)

还没有真正发布到数据库,尝试控制台favdata但没有收到消息,事件没有被触发。

我注册 serviceworker 的 main.js 中的片段

/**  * Service worker functions below  */ 
registerServiceWorker = …
Run Code Online (Sandbox Code Playgroud)

javascript synchronization offline-caching service-worker service-worker-events

5
推荐指数
1
解决办法
816
查看次数