0

私はこのブログを読んでいました:

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

実行ループ

EmberJSのより複雑な部分の1つは、実行ループです。通常、あなたはそれを認識していませんが、舞台裏でEmberはパフォーマンスのためにDOMとバインディングの更新をバッチ処理します。他のいくつかのフレームワークでは、100個のアイテムのリストがあり、それらをすべて変更して繰り返すと、100個の個別のDOM更新が発生します。Emberはそれらをバッチ処理して一度に更新し、より優れたユーザーエクスペリエンスを提供します。

そして、それはこの角度の問題に言及しています。これは本当ですか?これを軽減する方法はありますか?その音から、これが事実である場合、角度はパフォーマンスの面でかなり遅れている可能性がありますか?

4

1 に答える 1

2

AngularJS にもランループのようなものがあります。それらがバインディングを処理する方法は、dirtychecking の手段によるものです。(要求の厳しい) 3D ビデオゲームでも使用される手法。この方法により、AngularJS は最大 2000 個の要素を含む gui に対して迅速な応答性 (50ms 未満) でスムーズなエクスペリエンスを提供できると考えられます (これより多いと、Angular の意見では gui に含まれる情報が多すぎることを意味します)。そうは言っても、Angular は新しいブラウザですぐに Object.observe() 機能を利用し始めるでしょう。

ここで読むことができます: 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() メソッドを使用する必要があります。これはもう必要ありません。

あなたの選択は、GUI で大量の要素をサポートする機能のために、(EmberJS がサポートしている) 古いブラウザーをサポートしたいということになります。

于 2013-02-11T11:34:10.283 に答える