角度ライト+ Object.observe

Angular Lightは、Angular.jsおよびKnockout.jsのアイデアに基づいて構築された、スタンドアロンクライアントMV(C / VM)フレームワークであり、単純化されたAngular.jsのように見えます。







Angular Light 0.8のバージョンがリリースされ、さまざまな改善と修正、主要な変更が含まれています。



1. Webアプリケーションのパフォーマンスを向上できるObject.observeおよびArray.observeのサポート

Object.observeの使用はオプション機能であり、個々のスコープ(スコープツリー)で有効にすることもできます。 Object.observeをサポートしていないブラウザは、ダーティチェックを引き続き実行します。また、いくつかのニュアンスを知る必要があります



いくつかの球面テスト:

スコープ内の変化を見つける速度、jsperf。

結果は上の写真で見ることができます。



配列の変更を検索します 。このテストでは2000個の配列があり、それぞれに2000個の要素が含まれています。最初のパスでは配列の変更はなく、2番目のパスでは100個の配列の変更があります。 私のラップトップでのサンプル結果:

ダーティチェック: 35msおよび65ms

Object.observe: 0.1msおよび1ms



また、この機能については、生産性を高める余地があります。たとえば、「ダイジェスト」サイクルでは、変更がなかった領域を除外できます。これにより、パフォーマンスが大幅に向上します(上記のテストの場合)。



実際のアプリケーションでは全体的なパフォーマンスはそれほど良くありませんが、 Object.observeですべてをカバーすることはできず、一部はdity-checkingで機能しますが、大規模なアプリケーションの場合、利益は顕著になります。



2. Angular Lightを分離する機能。これにより、「害」なしで他の人のページにアプリケーションを埋め込むことができます。ページには、アプリケーションおよびフレームワークからのグローバル変数はありません。

同じページで異なるバージョンのAngular Lightを使用し、必要に応じてAngular Lightのコピーを作成することもできます。 angularlight.org/tutorial/isolated-alight.html#en



3.プライベートディレクティブ、コントローラー、フィルター。

各スコープ(ツリーのスコープ)に対して、独自のディレクティブセットを設定し、プライベートディレクティブを作成できます。 これを行うには、スコープ内に変数$ nsを作成し、そこに必要なディレクティブ、コントローラー、フィルターを追加する必要があります。 Jsfiddle.net/lega911/9mfpbrw7の



4.改善されたパフォーマンスとメモリ消費、テストカバレッジの増加、800近くのチェックがあります。



前の記事:




All Articles