创建一个可以离线工作、存​​储数据然后在线时将其同步到远程 MySQL 的 Web 应用程序?

use*_*562 5 javascript php mysql web-applications progressive-web-apps

我希望创建一个用 PHP/MySQL 编写的 Web 应用程序。它将用于收集在附近走动的工作人员的房屋数据。可能有些地方他们几乎没有手机信号,所以我需要一种方法让他们在离线时仍然可以查看网络应用程序,以及存储他们提交的数据,一旦他们的手机被插入到 MySQL 数据库中有信号/无线上网。

这样的事情甚至可能吗?

yka*_*gol 4

对的,这是可能的。尽管有许多不同的选择,“渐进式 Web 应用程序”(PWA)是当今的热门话题之一。他们通过响应式移动网站提供移动应用程序体验。他们还提供独立模式。

您可以使用Cache APIIndexedDB APIWeb Storage API ...来存储数据。

您需要Service Worker API来将您的应用程序与数据库同步或在用户离线时管理您的应用程序。

Google 关于PWA的文档可能是一个很好的起点。您还可以深入了解Google PWA 文档的离线存储

这是一个很好的博客,描述了PWA的特性。

2018 年 4 月更新:

在 iOS 11.3 中,Safari 11.1 发布并支持 Service Worker。参考:文档

感谢@ChrisLove评论

  • 目前,我们对渐进式网络应用程序几乎有 100% 的平台支持。Apple 最近发布了 Safari 更新,其中包括初始 Service Worker 支持 https://love2dev.com/blog/apple-shipps-service-workers/。微软去年秋天在 Insiders 版本中默认启用了服务工作线程,该版本现在将投入生产供一般使用。我们已经能够进行线下工作很多年了,服务人员让它变得更好。要保存数据,您可以使用 IndexedDB,我推荐像 localForage 这样的库来提供帮助。您可能还想研究您的场景的软件后台同步。 (3认同)