php - 数据库驱动的网络应用 : How to handle offline use

标签 php database offline-caching offlineapps service-worker

我正在使用 Laravel 开发网络应用程序(一个 PHP 框架)。我的大约 30 位同事将在他们的 Windows 笔记本电脑上使用该应用程序。

我的同事定期采访人们。一旦他们第一次采访某人,他们将使用网络应用程序将新的个人资料添加到数据库中,并在随后的访问中将注释附加到这些个人资料中。配置文件和笔记是使用 MySQL 存储的,但由于我使用的是 Laravel,所以我可以轻松切换到另一个数据库。

有时,我的同事必须在离线时采访人们。他们可能会拜访一组受访者,在 session 期间添加一些个人资料并向现有个人资料添加一些注释,而无需任何互联网接入。

我应该如何处理这个问题?

  1. 在每台笔记本电脑上安装本地网络服务器。我见过应用程序附带某种安装程序,包括 LAMP 堆栈,但我找不到任何相关文档。
  2. 我可以在每台笔记本电脑上安装该应用程序和 XAMPP 之类的东西 我。这是有可能的,但将来可能会有更多人使用该应用程序,而且并非所有人都在附近。
  3. 我可以使用 Service Worker,也许与这样的库结合使用 作为UpUp .这似乎是最优雅的方法。

我想尝试选项 (3),但我的应用程序是数据库驱动的,我不确定我是否可以实现这种方法:

  • 是否可以将数据库中的所有(相关)数据写入 - 比方说 - 一个 JSON 文件,在离线模式下可以访问该文件而不是数据库?我们不需要处理太多数据(面试期间应提供少于 100 条小数据记录)。
  • 当我的同事在离线模式下添加配置文件或注释时,是否有任何“Web 服务”方式将数据插入已输入的数据库?

谢谢
皮达

最佳答案

我认为它是分“两部分”构建应用程序。

首先,前端使用 ajax 调用后端(它只是一个 REST API)。如果没有任何网络连接,请使用本地存储将数据存储在浏览器中。

当用户以后有网络连接时,您可以将本地存储中存在的数据发送到后端并清除本地存储。

如果您在笔记本电脑上添加网络服务器,数据库和信息将只存储在他们的本地笔记本电脑上,不会同步。

关于php - 数据库驱动的网络应用 : How to handle offline use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503985/

相关文章:

php - Internet Explorer css 样式在引用 php 页面回发后中断

php - 如何将这段代码转为sql删除函数?

mysql - 什么是索引?

database - 获取数据库数据类型 ServiceStack Ormlite

http - 如何先显示缓存的版本,然后再查看etag/modified-since?

php - 网站使用的语言

javascript - 用前面的结果定义一个变量,有更好的方法吗?

php - 使用不带存储过程的 MySQL 是否会错过某些内容?

html - 如何关闭 HTML5 离线缓存

HTML5 离线应用缓存 : Force refresh of all content?