Breeze 微风内存管理-模式/实践?
我有一个旧的SL4/ria应用程序,我想用breeze来取代它。我有一个关于内存使用和缓存的问题。我的应用程序加载作业列表(一个典型用户可以访问大约1000个作业)。此外,还有相当多的查找实体类型。我想确保这些都在客户端缓存良好,但每个会话都会更新。当用户打开一个作业时,它会加载更多的相关实体(200-800个其他实体),这些实体构成作业的多个矩阵样式视图。用户可以查看作业列表,或导航到一次查看一个作业 我觉得我应该关注内存管理,尤其是不知道浏览器如何处理这个问题。最初我觉得这应该是一个EntityManager,当用户离开一个工作时,我会分离实体,但我认为这可能会从多个经理的预期寿命中受益。或者,我应该在用户每次导航到新的哈希“/#/”区域时创建一个新的dataservice&EntityManager,因为clear()上的注释似乎表明这会更快?如果我这样做了,我想我将使用pub/sub通知其他viewmodels对实体的更改?这似乎很复杂,并且破坏了微风作为上下文的一些好处Breeze 微风内存管理-模式/实践?,breeze,Breeze,我有一个旧的SL4/ria应用程序,我想用breeze来取代它。我有一个关于内存使用和缓存的问题。我的应用程序加载作业列表(一个典型用户可以访问大约1000个作业)。此外,还有相当多的查找实体类型。我想确保这些都在客户端缓存良好,但每个会话都会更新。当用户打开一个作业时,它会加载更多的相关实体(200-800个其他实体),这些实体构成作业的多个矩阵样式视图。用户可以查看作业列表,或导航到一次查看一个作业 我觉得我应该关注内存管理,尤其是不知道浏览器如何处理这个问题。最初我觉得这应该是一个Enti
如果您有任何建议或想法,我们将不胜感激。我想我理解这个问题。我想我会使用多经理方法:
作为改进,我不知道在返回JobsView时会自动销毁JobEditor视图/viewmodel/manager。根据我的经验,人们经常回到刚刚离开的工作岗位。我可能会保留一个视图,这样你就可以快速来回。但现在我变得很棘手。这是一个很好的回答。谢谢你的描述。我想我还没有真正考虑过编辑生命周期。谢谢你的反馈。沃德,谢谢你。我有一个问题:在像Durandal这样的AMD环境中,难道不可能要求(lookupManager)而不是breeze导出/导入它吗?这会给我带来麻烦吗?当然有可能。不知道它能给你买什么。对于所有性能问题,首先衡量和理解问题的具体内容至关重要,然后才能创造性地提出解决方案。查找数据很容易,但实际问题可能在其他地方(DOM写入、过度事件/监视、未发布的对象、GC抖动)