EmberJS に新しく追加された機能に関するこの記事を読んでいます。そのうちの 1 つはEmber.Instrumentationです。可能であれば、例を挙げてどこで使用するのか説明できますか...ありがとう
質問する
1509 次
1 に答える
9
どうして
一般に、インストルメンテーションは、名前空間付きのリスナーをサブスクライブすることで、アプリのパフォーマンスやその他の指標を測定する方法です。デバッグにも役立ちます。
例
このフィドルを作成したことを信用することはできません。昨夜の NYC ember.js ミートアップでしか見たことがありませんが、これはいくつかのコンテキストを提供するはずです。
誰がこれを発表したかを突き止めようとしたところ、彼のミートアップ プロフィールしか見つかりませんでした: http://www.meetup.com/EmberJS-NYC/members/6706336/
魔法が起こるのを確認するには、コンソールを開き、生徒を「ここ」としてマークし始めます。
一番上に StudentView があり、一番下に Em.Subscribe があります。
// In a view
Em.instrument("student.here", this.get('content'), function() {
//mark student as in attendance
this.set('inAttendance', !this.get('inAttendance'));
}, this);
},
...
Em.subscribe('*', {
ts: null,
before: function(name, timestamp, payload) {
ts = timestamp;
//console.log(' before: ', name, JSON.stringify(payload));
//return 'HelloFromThePast';
},
after: function(name, timestamp, payload, beforeRet) {
//log metrics
//record analytics
//profile app
console.log('instrument: ', name, JSON.stringify(payload), beforeRet, timestamp - ts);
}
});
サイドノート
さらに素晴らしいのは、ワイルドカードを使用して ember のインストルメンテーションの使用をサブスクライブできることです。
http://jsfiddle.net/dmazza/sUvdg/
ドキュメンテーション
詳細については、ドキュメントを参照してください: http://emberjs.com/api/classes/Ember.Instrumentation.html
于 2012-10-26T20:39:32.273 に答える