Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在连接可用时脱机启动应用程序并进行同步_Javascript_Html_Couchdb_Offline_Pouchdb - Fatal编程技术网

Javascript 如何在连接可用时脱机启动应用程序并进行同步

Javascript 如何在连接可用时脱机启动应用程序并进行同步,javascript,html,couchdb,offline,pouchdb,Javascript,Html,Couchdb,Offline,Pouchdb,我正在开发一个在android上运行的库存应用程序。我计划使用HTML5、JS、PockDB和couchdb。虽然我知道此应用程序在连接到服务器后可以脱机工作,而无需任何连接和稍后的同步,但如果没有internet连接,我如何启动该应用程序 我试图使用android play store中的一些服务器,但我想避免它 应用程序应在没有任何互联网连接的情况下启动。 在本地保存数据。 即使在退出后,数据也应可用,并在internet连接可用时进行同步。脱机工作,然后与联机服务器同步数据有时可能会非常棘

我正在开发一个在android上运行的库存应用程序。我计划使用HTML5、JS、PockDB和couchdb。虽然我知道此应用程序在连接到服务器后可以脱机工作,而无需任何连接和稍后的同步,但如果没有internet连接,我如何启动该应用程序

我试图使用android play store中的一些服务器,但我想避免它

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

脱机工作,然后与联机服务器同步数据有时可能会非常棘手

情节 要做到这一点而不影响用户体验,最推荐的方法是考虑应用程序将在哪些场景下工作,如:

您的用户是否需要注册或登录任何服务或帐户? 在用户开始在本地使用之前,您的用户数据是否需要事先注册到您的在线服务中? 可能的解决方案 在设计应用程序的启动方式之前,请尝试回答上述问题

在开始创建库存之前,我的用户需要注册或登录在线帐户 这表示您的用户在第一次启动您的应用程序时必须具有internet连接

如果这是真的,那么你的应用程序必须在第一时间启动,要求登录或 登记册

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

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

您的应用程序必须遵循创建、编辑和删除库存的正常工作流程

我的用户无需登录即可在我的应用程序上创建清单 这个答案自动表示,在离线修改之前,您的用户数据不需要事先在线注册,因此这里不需要互联网,包括用户第一次打开应用程序时

在这种情况下,您将开始检查internet连接,如果您有internet,您将要求用户进行身份验证。 在这种情况下,您的应用程序必须从其原始工作流开始,离线创建所有数据,然后在用户登录时,它将尝试将本地数据与在线存储的数据同步。 TL:DR
在所有这些情况下,您都在寻找一个,PWA是在客户端脱机工作的web应用程序。

您好Thauan C Santos,这是一个企业应用程序。因此,用户必须首先登录。为此,应用程序必须首先同步,以便将用户表传输到设备。嗯。。所以@MohanC你必须使用我在上面的“我的用户需要注册或登录”中解释的工作流@MohanC我已经更新了我的答案,看看你是否能理解。是的,PWA必须是这样。我发现一个有用的工作流是让NodeJS和pookdb与我在CouchDb中的主数据库在同一个本地网络上运行。它的作用是通过复制接收包含JWT JSON Web令牌的特别标识的请求记录。NodeJs代码确认请求的JWT真实性和授权,将请求转换为有效的数据插入、更新或删除,然后将其复制回CouchDb。我设置了复制,以便客户端只接收经过验证的记录,并且只能发送数据操作请求。这也有助于避免某些数据冲突问题。请解释您的所有问题,清楚地描述您的所有问题,阅读您对我上述答案的评论,我意识到您并没有解释您的所有问题,而只是其中的一部分,这不再会导致任何解决方案答案。