javascript - 如何在连接可用时离线启动应用程序并同步

标签 javascript html couchdb offline pouchdb

我正在开发一个在 Android 上运行的库存应用程序。我计划使用 HTML5、JS、pouchdb 和 couchdb。虽然我知道这个应用程序在连接到服务器后可以离线工作,无需任何连接并稍后同步,但如果没有互联网连接,我如何启动该应用程序?

我尝试使用 Android Play 商店中的一些服务器,但我想避免使用它。

应用程序应该在没有任何互联网连接的情况下启动。 将数据保存在本地。 即使退出后,当互联网连接可用时,数据也应该可用并同步。

最佳答案

离线工作然后与在线服务器同步数据有时可能非常棘手。

场景

在不影响用户体验的情况下执行此操作的最推荐方法是想知道您的应用程序可以运行的某些场景,如下所示:

  • 您的用户是否需要注册或登录任何服务或帐户?
  • 您的用户数据是否需要事先注册到您的在线服务中,然后用户才能在本地开始使用它?

可能的解决方案

在设计应用的启动方式之前,尝试回答上述问题。

在开始创建库存之前,我的用户需要注册或登录在线帐户

这表示当您的用户第一次启动您的应用程序时,他必须有互联网连接。

  1. 如果这是真的,那么您的应用程序必须在第一次启动时要求登录或 注册

    • 在这种情况下,如果用户第一次启动应用程序时没有连接。您的应用程序必须停止在登录屏幕上(这是常用的流程)
  2. 用户登录后,您必须将从在线服务器检索到的用户数据存储到本地存储

  3. 当用户下次启动应用程序时,应用程序将自动识别它并跳过登录/身份验证屏幕。

  4. 您的应用必须遵循正常工作流程(创建、编辑、删除 list )

我的用户无需登录即可在我的应用上创建库存

这个答案自动表明您的用户数据在离线修改之前不需要预先在线注册,因此这里不需要互联网,包括用户第一次打开应用程序时。

  • 在这种情况下,您将开始检查互联网连接,如果有互联网,您将要求用户进行身份验证。
  • 在这种情况下,您的应用必须从其原始工作流程开始,离线创建所有数据,然后在用户登录时,它会尝试将本地数据与在线存储的数据同步。

TL:DR

在所有这些情况下,您正在寻找 Progressive Web App ,PWA 是在客户端离线工作的 Web 应用程序。

关于javascript - 如何在连接可用时离线启动应用程序并同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55363819/

相关文章:

typescript - 如何使用 Superlogin、ionic3、PouchDB 和 CouchDB 在前端实现 Superlogin-Client 身份验证?

javascript - 无法收到在 Web 蓝牙 API 中工作的通知

javascript - 在变量中声明一个 JavaScript 函数?

html - 广泛使用类来减少 CSS 大小

javascript - 使用 javascript 创建 JSON 请求数据

CouchDB 压缩和文档删除 - 压缩无动于衷?

javascript - JQM动态弹窗

javascript - 如何防止在 jQuery 函数中重复?

html - 是否可以重复 1 个以上的背景图像

CouchDB、Fauxton - 安装、定位文件