角度运行循环

Angular run loop

本文关键字:循环 运行      更新时间:2023-09-26

我在读这个博客:

http://eviltrout.com/2013/02/10/why-discourse-uses-emberjs.html

运行循环

EmberJS中比较复杂的部分之一是运行循环。通常你不知道,但在幕后Ember批量更新到DOM和绑定以获得性能。在其他一些框架中,如果您有一个包含100个项目的列表,并对它们进行迭代更改最后,您将获得100个单独的DOM更新。Ember将批处理它们并一次更新,提供更好的用户体验。

它提到了这个角度问题。这是真的吗?有什么方法可以缓解这种情况吗?从声音上看,如果是这样的话,那么在性能方面,angular可能会落后很多?

AngularJS也有类似于runloop的东西。他们处理绑定的方式是通过直接检查的方式。一种也用于(要求很高的)3d视频游戏的技术。我们的想法是,使用这种方法,AngularJS将能够为包含多达2000个元素的gui提供快速响应(<50ms)的流畅体验(更多意味着你的gui在Angular看来包含了太多信息)。也就是说,Angular将很快在较新的浏览器中开始使用Object.obsobe()功能。

您可以在此处阅读:http://blog.angularjs.org/2012/07/angularjs-10-12-roadmap.html

Object.observe() prototype (replace our dirty checking with O.o() )

这意味着Angular将用我认为是这个问题的最佳性能来代替它的脏检查。优点是可以使用不那么复杂的设置(在EmberJS中,必须使用Ember.set()和.get()方法。这将不再是必要的。

您的选择将归结为想要支持较旧的浏览器(EmberJS就是这样做的),因为它具有支持gui中大量元素的功能。