php-数据库驱动的Web应用程序:如何处理离线使用
作者:互联网
我正在使用Laravel(PHP框架)开发Web应用程序.我的约30位同事将在Windows笔记本电脑上使用该应用程序.
我的同事定期采访人们.他们将使用Web应用程序到一个新的配置文件添加到数据库中,一旦他们采访某人首次,他们将追加笔记以后访问这些文件.配置文件和注释使用MySQL存储,但是由于我使用的是Laravel,因此我可以轻松切换到另一个数据库.
有时,我的同事必须在人们离线时采访他们.他们可能会在没有任何互联网访问的情况下访问一组受访者,添加一些个人资料并在现有笔记中添加一些注释.
我应该如何处理?
>每台笔记本电脑上均具有本地Web服务器.我已经看到应用程序附带了某种安装程序,包括LAMP堆栈,但是我找不到关于此的任何文档.
>我可以在每台笔记本电脑上安装该应用程序和XAMPP之类的东西
我.这是有可能的,但是将来会有更多的人使用该应用程序,而并非所有人都位于附近.
>我可以使用Service Workers,也许与诸如
如UpUp.这似乎是最优雅的方法.
我想尝试选项(3),但是我的应用程序是数据库驱动的,我不确定是否可以实现这种方法:
>是否可以将所有(相关)数据从数据库写入到-假设可以在脱机模式下访问的JSON文件而不是数据库?我们不必处理太多数据(在一次访谈期间,少于100条小数据记录).
>当我的同事在离线模式下添加配置文件或注释,有没有“Web服务”的方式将数据插入到数据库已进入?
谢谢
皮达
解决方法:
您可以使用服务程序来构建您描述的内容,其中使用服务程序来缓存站点的静态内容以使其可以脱机使用,并使用服务程序中的特定提取处理程序来检测失败的PUT或POST并将数据排入IndexedDB中.然后,在加载Web应用程序时,您需要定期检查IndexedDB是否有任何排队的数据,然后尝试重新发送.
我已经在https://developers.google.com/web/showcase/case-study/service-workers-iowa#updates-to-users-schedules上详细介绍了这种方法
该文章假定使用sw-precache
库来缓存站点的静态资产,并使用sw-toolbox
库来提供运行时获取处理程序,以检查失败的业务逻辑请求.它还使用了一个基于约定的基于索引的IndexedDB包装器simpleDB
,尽管我现在可能会选择更新的idb
库.
标签:offline-caching,service-worker,offlineapps,php,database 来源: https://codeday.me/bug/20191119/2036569.html