我正在使用 Laravel 开发网络应用程序(一个 PHP 框架)。我的大约 30 位同事将在他们的 Windows 笔记本电脑上使用该应用程序。
我的同事定期采访人们。一旦他们第一次采访某人,他们将使用网络应用程序将新的个人资料添加到数据库中,并在随后的访问中将注释附加到这些个人资料中。配置文件和笔记是使用 MySQL 存储的,但由于我使用的是 Laravel,所以我可以轻松切换到另一个数据库。
有时,我的同事必须在离线时采访人们。他们可能会拜访一组受访者,在 session 期间添加一些个人资料并向现有个人资料添加一些注释,而无需任何互联网接入。
我应该如何处理这个问题?
- 在每台笔记本电脑上安装本地网络服务器。我见过应用程序附带某种安装程序,包括 LAMP 堆栈,但我找不到任何相关文档。
- 我可以在每台笔记本电脑上安装该应用程序和 XAMPP 之类的东西 我。这是有可能的,但将来可能会有更多人使用该应用程序,而且并非所有人都在附近。
- 我可以使用 Service Worker,也许与这样的库结合使用 作为UpUp .这似乎是最优雅的方法。
我想尝试选项 (3),但我的应用程序是数据库驱动的,我不确定我是否可以实现这种方法:
- 是否可以将数据库中的所有(相关)数据写入 - 比方说 - 一个 JSON 文件,在离线模式下可以访问该文件而不是数据库?我们不需要处理太多数据(面试期间应提供少于 100 条小数据记录)。
- 当我的同事在离线模式下添加配置文件或注释时,是否有任何“Web 服务”方式将数据插入已输入的数据库?
谢谢
皮达
最佳答案
我认为它是分“两部分”构建应用程序。
首先,前端使用 ajax 调用后端(它只是一个 REST API)。如果没有任何网络连接,请使用本地存储将数据存储在浏览器中。
当用户以后有网络连接时,您可以将本地存储中存在的数据发送到后端并清除本地存储。
如果您在笔记本电脑上添加网络服务器,数据库和信息将只存储在他们的本地笔记本电脑上,不会同步。
关于php - 数据库驱动的网络应用 : How to handle offline use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503985/