我有简单的CRUD应用程序,后端用Flask编写,数据存储区是Mongo,前端是AngularJS。
我想扩充应用程序以允许CRUD操作,即使它处于脱机状态,并在数据连接可用时自动同步。以最少量的额外开发来实现这一目标的最佳技术是什么?
我看过Meteor可以解决问题,但会涉及在Meteor中重写应用程序。
我也看过Breeze,看起来它可能是一个更好的选择,让我继续使用Angular和Flask。
答案 0 :(得分:2)
是否有大量数据?将离线功能添加到现有应用程序总会产生一些影响。
您可以尝试直接使用某些HTML5功能:HTML5 Application Caching用于离线访问,并允许下载Web应用程序所需的所有工件,以便能够脱机工作,从而解决部分问题。< / p>
另一部分是数据,可以使用浏览器HTML5 Local Storage或IndexedDB将其加载到浏览器中。
本地存储允许存储与密钥关联的字符串,因此要存储JSON,您需要首先对其进行字符串化。 IndexedDB支持更多数据类型,两个数据存储区都有Javascript API。
因此,选择一个数据存储区并制作一个定期ping服务器的同步模块,并在连接可用时同步本地数据存储区。
替代方案是使用一些离线的第一个框架,如hoodie,这是来自连帽开发者的article,用于如何将连帽衫与角度一起使用。他采用Angular TODO sample application并修改它以使用连帽衫。
这与应用程序缓存一起可能是降低Angular应用程序脱机功能的一种影响较小的方式。