javascript - 使用后台同步发布表单

标签 javascript angularjs node.js

在 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/

相关文章:

javascript - 谷歌地图 api 方向服务在显示多个标记 javascript 之间的路线时提供 OVER_QUERY_LIMIT

Javascript Html 事件处理

json - 服务在 Controller 之后运行?返回未定义

javascript - 为什么我无法从调试器引用使用函数声明定义的函数?

javascript - FireFox 中的 Canvas 进度圈

javascript - 传递参数时 AJAX setTimeout 不起作用

javascript - 如何在另一个模块中动态注入(inject)模块?

angularjs - AngularJS 的数字签名

node.js - 从路线 Sequelize ?

javascript - 如何检查 Node.js 脚本是否在终端或 Web 上运行?