AngularJS:单一视图应用程序,大数据和内存问题

时间:2013-09-25 15:23:44

标签: angularjs

我有单个视图应用程序,让我们并排说两列。在左侧您有订单列表,当您点击一个订单时,您会在右侧看到它的详细信息..您可以更改数量并添加一些详细信息(文本字段)..每当您这样做时,左列受到影响很快就会改变,好。

该应用正在使用一个主控制器和一个服务。订单存储在$ localStorage中,并在您初始化页面时由控制器传递给$ scope。该视图在左列使用ng-repeat循环,在右侧使用ng-show。所有新订单都从外部服务器推送到应用程序(控制器在每次收到的更新时更新$ localStorage和$ scope)。

当订单列表变大时,问题就开始出现了,从50+开始就明显了,键盘上的输入(在textarea中)越来越慢,订单在$ scope中越来越多...... 我理解订购和过滤可能会耗费内存,但这是我应该期待的还是我的做法可能是错误的?

当您需要处理大数据时,您将如何分离应用逻辑? (让我们说同时有500多个订单)。

提前感谢所有输入,建议和帮助...

1 个答案:

答案 0 :(得分:1)

ng-repeat创造了很多手表。很多手表=性能不佳。立即绑定到ng-repeat列表有多重要?您可以创建一个指令,该指令可以执行ng-repeat对少量手表执行的操作,也可以仅在您保存订单时进行更新。

同时检查这个库...即使它对你没有帮助,它也很好地描述了你正在遇到的东西,也许你可以找到解决方法。 https://github.com/Pasvaz/bindonce

你是什么意思,你正在使用ng-show来显示订单?这意味着你实际上是为所有订单“详细视图”插入DOM,然后用ng-show显示它们?因为那将是另一个巨大的滞后。我只有一个单一的“订单”部分,也许是一个带有隔离范围的指令,它可以双向绑定到“选定”订单。

如果没有任何代码,很难确切知道发生了什么,但希望这会有所帮助。