Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs BreezeJS离线/在线管理_Angularjs_Breeze - Fatal编程技术网

Angularjs BreezeJS离线/在线管理

Angularjs BreezeJS离线/在线管理,angularjs,breeze,Angularjs,Breeze,背景: 我正准备开始一个项目,首先需要移动设备。客户端使用AngularJS,DB使用SQL,通信使用.NETWebAPI2。我读过关于BreezeJS的文章,并想将其用作我的离线数据管理文章,主要是因为我在.NET方面使用EF6,我喜欢Breeze能够通过EF元数据管理和创建实体的想法 在设计应用程序时,我一直在思考如何准确地管理突然的网络丢失。据我所知,BreezeJS在使用时将其EntityManager存储在工作内存中。如果用户在线工作,然后浏览器崩溃或计算机关闭,然后在脱机设置下重新打

背景: 我正准备开始一个项目,首先需要移动设备。客户端使用AngularJS,DB使用SQL,通信使用.NETWebAPI2。我读过关于BreezeJS的文章,并想将其用作我的离线数据管理文章,主要是因为我在.NET方面使用EF6,我喜欢Breeze能够通过EF元数据管理和创建实体的想法

在设计应用程序时,我一直在思考如何准确地管理突然的网络丢失。据我所知,BreezeJS在使用时将其EntityManager存储在工作内存中。如果用户在线工作,然后浏览器崩溃或计算机关闭,然后在脱机设置下重新打开webapp,Breeze是否正常恢复,或者这是我需要处理的用例

问题:
我想我的问题很简单,有没有办法强迫BreezeJS不使用工作内存,而是使用本地存储?如果不是,我应该每次更改都将实体导出到本地存储,还是有更好的方法来处理此特定用例?

Breeze无法自动使用localStorage,但是您可以创建一个计时器,定期将EntityManager状态存储到localStorage。但我不确定这是个好主意


您确实需要区分服务器不可用的情况,在这种情况下,最好将EntityManager存储到localStorage,以便在服务器恢复时保留任何更改。与担心浏览器/客户端计算机崩溃相反,在这种情况下,我认为最好不要处理这种情况。复杂性和性能影响非常大,如果您确实对此感到担忧,那么在每次更改后只需执行一次保存(到服务器)(也不一定是推荐的方法,但它是可用的)

主要问题是,该应用程序将被那些电池突然或意外死亡的领域的人们使用。我需要确保在保存电池耗尽之前输入的所有信息。计时器是一个很好的选择,但我认为每次更改后都必须更新本地存储,以确保所有数据都存在。因此,请先添加到本地存储,然后保存,如果保存成功,请从存储中删除