Javascript 同步事件将结果传递给应用程序或侦听数据库事件

Javascript 同步事件将结果传递给应用程序或侦听数据库事件,javascript,indexeddb,service-worker,progressive-web-apps,Javascript,Indexeddb,Service Worker,Progressive Web Apps,我的应用程序中有以下流程: 在页面上设置一些数据并提交[app] 将数据保存在indexeddb和fire sync事件[应用程序]中 从indexeddb检索数据并将其发送到服务器[服务工作者] 将响应保存在indexeddb[服务人员]中 从indexeddb检索响应并发布到视图[app] 这个流程对我来说很有效,但我不满意我是如何解决第5点的。此时,在service worker被解雇后,在下一行应用程序代码中,我正在使用setInterval方法定期检查响应中是否有新行 有没有办法将事件

我的应用程序中有以下流程:

  • 在页面上设置一些数据并提交[app]
  • 将数据保存在indexeddb和fire sync事件[应用程序]中
  • 从indexeddb检索数据并将其发送到服务器[服务工作者]
  • 将响应保存在indexeddb[服务人员]中
  • 从indexeddb检索响应并发布到视图[app]
  • 这个流程对我来说很有效,但我不满意我是如何解决第5点的。此时,在service worker被解雇后,在下一行应用程序代码中,我正在使用
    setInterval
    方法定期检查
    响应中是否有新行

    有没有办法将事件从服务工作者同步发送到应用程序,让它知道数据正在等待它


    或者indexeddb上可能有一个事件,我可以订阅该事件以侦听更改?

    您应该能够在ServiceWorker和您的应用程序之间设置消息通道。从高层来看,应用程序与ServiceWorker之间的通信将在通道的一个端口上进行,而ServiceWorker与应用程序之间的通信将在通道的另一个端口上进行。您的ServiceWorker不应该轮询更新的数据,而应该只能够通知您的应用程序响应已成功保存

    偶然发现了这篇博客文章,它应该能够让你朝着正确的方向开始: