我正在开发一个离线优先的 Web 应用程序(HTML5 和 JS),用于数据收集,在线时应同步到 MySQL 服务器。我还需要从 MySQL DB 获取一个子集以进行离线搜索(选择数据收集的类别/属性)。
总结一下:
- 从 MySQL 获取类别并存储在可查询的客户端数据库中
- 收集数据并存储在客户端数据库
- 在线同步数据到 MySQL 时(最好通过 PHP 脚本)
我研究过 PouchDB,但我认为这不是正确的解决方案,因为服务器端应用程序都依赖于 MySQL,并且不能全部重写。
您建议什么解决方案?
最佳答案
假设您有一个 JS 博客应用程序,上面带有 Redux(例如)。
您的数据层 (Redux) 将数据保存到 LocalStorage 中,反之亦然,当加载应用程序时,它会检查 LocalStorage 以及是否有数据 - 数据会加载到 Redux 中。
您的 Redux 包含 Posts 和 NewPosts。
当应用程序在线时,您向服务器发送请求,服务器响应一些数据,您将这些数据存储到帖子中。
当应用程序离线时,您不会发送任何请求,只需将新帖子存储到NewPosts中。
当您的应用重新上线时 - 您将 NewPosts 中的每个项目发送到服务器,如果它们成功存储 - 将它们从 NewPosts 中删除并更新 发布新内容的帖子。
在应用程序中,您首先渲染NewPosts(可能带有未同步图标或其他内容),然后渲染Posts。
希望我正确理解了你的问题。
关于javascript - 离线优先的 webapp 本地存储同步到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54590312/