6

EmberJS に新しく追加された機能に関するこの記事を読んでいます。そのうちの 1 つはEmber.Instrumentationです。可能であれば、例を挙げてどこで使用するのか説明できますか...ありがとう

4

1 に答える 1

9

どうして

一般に、インストルメンテーションは、名前空間付きのリスナーをサブスクライブすることで、アプリのパフォーマンスやその他の指標を測定する方法です。デバッグにも役立ちます。

このフィドルを作成したことを信用することはできません。昨夜の NYC ember.js ミートアップでしか見たことがありませんが、これはいくつかのコンテキストを提供するはずです。

http://jsfiddle.net/2Pn3f/6/

誰がこれを発表したかを突き止めようとしたところ、彼のミートアップ プロフィールしか見つかりませんでした: 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 に答える