2

こんにちは、backbone.js を使用して paly2.0 フレームワーク アプリケーション (Java を使用) に取り組んでいます。私のアプリケーションでは、定期的にデータベースからテーブルデータを取得する必要があります (今後のイベントリストを表示するユースケースの場合、およびクロスした場合は古いイベントをリストから削除する必要があります)。表示するデータを取得していますが、問題は、データベースを定期的にヒットすることです。そのために、これらのリンクの Backbone.js ポーリングの概念を使用しようとしまし。彼らはデータベースから最新のコレクションをポーリングしていません。それを達成する方法または他の代替手段を教えてください。前もって感謝します。

4

1 に答える 1

8

Backbone でそれを行うネイティブな方法はありません。ただし、コレクションにいくつかのメソッドを追加して、長いポーリング リクエストを実装できます。

// MyCollection
var MyCollection = Backbone.Collection.extend({
  urlRoot: 'backendUrl',

  longPolling : false,
  intervalMinutes : 2,
  initialize : function(){
    _.bindAll(this);
  },
  startLongPolling : function(intervalMinutes){
    this.longPolling = true;
    if( intervalMinutes ){
      this.intervalMinutes = intervalMinutes;
    }
    this.executeLongPolling();
  },
  stopLongPolling : function(){
    this.longPolling = false;
  },
  executeLongPolling : function(){
    this.fetch({success : this.onFetch});
  },
  onFetch : function () {
    if( this.longPolling ){
      setTimeout(this.executeLongPolling, 1000 * 60 * this.intervalMinutes); // in order to update the view each N minutes
    }
  }
});

var collection = new MyCollection();
collection.startLongPolling();
collection.on('reset', function(){ console.log('Collection fetched'); });
于 2012-07-30T17:33:32.310 に答える