我有一个简单的 CRUD 应用程序,后端用 Flask 编写,数据存储是 Mongo,前端用 AngularJS 编写。
我想增强应用程序,使其即使在离线状态下也可以进行 CRUD 操作,并在数据连接可用时自动同步。用最少的额外开发来做到这一点的最佳正确技术是什么?
我研究过 Meteor,它可以解决这个问题,但需要在 Meteor 中重新编写应用程序。
我还研究过 Breeze,它看起来可能是一个更好的选择,并且允许我继续使用 Angular 和 Flask。
最佳答案
数据量大吗?向现有应用程序添加离线功能总会产生一些影响。
您可以尝试直接使用一些 HTML5 功能:HTML5 Application Caching专为离线访问而设计,允许下载 Web 应用程序离线工作所需的所有工件,从而解决了部分问题。
另一部分是数据,可以使用浏览器HTML5 Local Storage将其加载到浏览器中。或IndexedDB .
本地存储允许存储与键关联的字符串,因此要存储 JSON,您需要首先对其进行字符串化。 IndexedDB支持更多的数据类型,两个数据存储都有Javascript API。
因此,问题是选择一个数据存储并创建一个同步模块,定期 ping 回服务器,并在连接可用时同步本地数据存储。
另一种方法是使用一些离线的第一个框架,例如 hoodie ,这是article来自连帽衫开发人员的关于如何将连帽衫与 Angular 一起使用的信息。他拿了 Angular TODO sample application并修改为使用连帽衫。
这与应用程序缓存一起可能是为 Angular 应用程序提供离线功能的一种影响较小的方式。
关于javascript - 如何使我的 CRUD 应用程序离线工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890872/