在 PWA 中,如何安排应用程序表单 POST 提交,以便在互联网连接再次恢复后立即刷新关联的 API 请求?
是否可以使用后台同步?如果是的话怎么办?
最佳答案
老问题,但为了子孙后代......
将问题分解为关键部分会更容易:
how can I make the application schedule form POST submissions...
标准的cache.put()机制does not support POST submissions 。 Service Worker 可以捕获与服务器的所有通信,包括 POST 提交,但是您必须将其保存到 the IndexedDB object store手动,或使用库 like Workbox that will do that for you .
...as soon as the internet connection is back again
后台同步 API 存在相当大的延迟,通常为几分钟。 According to Google :“支持BackgroundSync API 的浏览器将以浏览器管理的时间间隔代表您自动重放失败的请求,可能会在重放尝试之间使用指数退避。”不用说,连接到互联网后不会立即发送消息。
Is it possible using background sync? If yes then how?
如果可以容忍上述限制,那么 Service Workers 就可以解决问题,但有一个相当大的学习曲线。使用像 Workbox 这样的库(带有 workbox.backgroundSync.Plugin )可能是最简单的。
关于javascript - 使用后台同步发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994767/