在webapp

时间:2018-03-20 19:24:16

标签: web-applications local-storage service-worker runonce

我考虑创建一个webapp。 webapp必须能够脱机工作并在连接可用时同步数据,所以我认为我应该使用localStorage。

但是,我担心多次在多个标签页中打开应用的用户。我认为这没有合理的使用案例,但我担心并行访问单一的本地存储和由此产生的竞争条件。

最简单的方法似乎是实现一次运行行为,因此当用户尝试(而不是偶然)第二次打开应用程序时,他们会收到警告或理想情况下切换到现有应用程序。我知道这不是用户体验的全部成果,但它可能是用户体验和开发成本之间的合理权衡。但是,我不确定如何正确实现它。也许我可以使用窗口名称,但这看起来很像一个很容易破解的黑客。

或者,我正在考虑一个更高级的变体,它允许同一页面的多个实例,但是:

  • 它同步数据的本地副本和
  • 它确保只有一个后台同步实例

这看起来像ServiceWorkers的任务,但它们的兼容性有限。我主要关注iOS,它似乎在测试版中对它们有了一些新的支持。

我不确定选择哪种方法以及如何正确实施。我可能会采用看起来更容易的方法,除非它是一个丑陋的黑客或有一些主要的缺点。

一些上下文:它是一个内部应用程序,预计将由少数用户在自己的设备上使用。所以,我期待各种设备,主要是Android和iOS。它也可能用在笔记本电脑上。该应用程序只是一个简化的特定于域的界面,可以轻松地将数据输入到某些Google Sheet中,该页面可用作存储后端。我们可以稍微教育应用程序的用户(这就是为什么我认为运行一次限制可接受的原因),但我们不应期望他们有任何IT技能。所以我不想依赖用户两次不打开webapp。

0 个答案:

没有答案