背景:我准备开始一个首先需要移动设备的项目。我在客户端使用AngularJS,在数据库中使用SQL,在通信中使用.net WEBApi2。我已阅读有关BreezeJS的文章,并希望将其用作离线数据管理文章,主要是因为我在.NET方面使用EF6,并且我喜欢Breeze能够通过EF元数据管理和创建实体的想法。
在设计应用程序时,我陷入了如何精确管理突然的网络丢失的想法。据我了解,BreezeJS在使用它时将其EntityManager存储在工作内存中。如果用户正在在线工作,然后浏览器崩溃或计算机关闭,然后以脱机设置重新打开Web应用程序,那么Breeze是否可以正常恢复?还是我需要处理的用例?
问题:我想我的问题很简单,是否有一种方法可以迫使BreezeJS不使用工作内存而是改为使用localStorage?如果不是,我是否应该将每次更改都将EntryEntities导出到本地存储,还是有更好的方法来处理此特定用例?
Breeze无法自动使用localStorage,但是您可以创建一个计时器,将EntityManager状态定期存储到localStorage。但是不确定这是个好主意。
您确实需要区分服务器不可用的情况,在这种情况下,将EntityManager存储到localStorage非常有意义,以便在服务器恢复时可以保留所有更改。相对于担心浏览器/客户端计算机崩溃,在这种情况下,我认为最好不处理这种情况。复杂性和性能影响非常大,如果您真的对此感到担心,则只需在每次更改后执行一次保存(保存到服务器)(同样不一定是推荐的方法,但是可以使用)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句