Javascript 角度';s一次性绑定替代方案

Javascript 角度';s一次性绑定替代方案,javascript,angularjs,data-binding,Javascript,Angularjs,Data Binding,最近,我浏览了几个与AngularJS优化技术相关的StackOverflow问题: 大多数答案都提出了一种称为的优化技术,但我的用例表明我不能使用这种方法,我所有的数据都是交互式的,更改是从服务器推送到客户端的,而且需要显示相当多的数据。发生服务器通知时,需要进行UI更新。因此,如果我使用一次性绑定,它将破坏我的页面 在我的案例中,我试图分析导致AngularJS变慢的原因,我发现并不是脏检查本身减慢了进程。现代javascript引擎能够在几毫秒内对数以万计的对象属性进行脏检查。使Ang

最近,我浏览了几个与AngularJS优化技术相关的StackOverflow问题:

大多数答案都提出了一种称为的优化技术,但我的用例表明我不能使用这种方法,我所有的数据都是交互式的,更改是从服务器推送到客户端的,而且需要显示相当多的数据。发生服务器通知时,需要进行UI更新。因此,如果我使用一次性绑定,它将破坏我的页面

在我的案例中,我试图分析导致AngularJS变慢的原因,我发现并不是脏检查本身减慢了进程。现代javascript引擎能够在几毫秒内对数以万计的对象属性进行脏检查。使AngularJS变慢的根本原因是
$watch
表达式本身,每个
$watch
调用都使用
setTimeout
调用加上一些AngularJS内部开销进行备份。主要的问题是,这些调用将控制权传递给浏览器的内部消息循环,从程序的角度来看,它除了在数据显示过程的每个步骤中施加延迟外,什么都不做

因此,我的问题是:与一次性绑定不同,我想有一种方法将单向绑定表达式
{{someObj.someProperty}}
分组到一个
$watch
调用中,比如

{{ myBulkWatch::someObj.someProperty1 }}
{{ myBulkWatch::someObj.someProperty2 }}
...
{{ myBulkWatch::someObj.somePropertyN }}
我知道现在还没有这样的功能,但也许至少可以用现有的Angular的仪器来模拟这个功能

对这个问题有什么想法吗


提前谢谢你

有关于数据交互程度的示例吗?这是一项新技术,尚未公开宣布,但很快就会公布,它允许向客户端发送数据库数据的一个方面(称为“快照”,即允许用户使用的数据)。数据通常是应用程序的业务实体,其总大小在10到50MB之间。一旦数据库发生更改,它就会自动推送到客户机,因此不需要从服务器/数据库查询数据。该技术与Meteor.js类似,不同之处在于它可以与任何数据库一起使用,并具有大量其他不适合当前答案的漂亮功能。因此,回答您的问题@YOU时,数据是真正的交互数据,一旦数据库发生变化,它就会自动显示在UI上,让它绑定一次就毁了整个想法……是的,这就是我所害怕的,我不想创建自己的
ng bind
。这种方法给了我一些有趣的想法,可以让我在最初提到的新技术中获得额外的性能增益。谢谢你,真的很积极的讨论!