1

MVC アプリケーションでバックボーン アーキテクチャを使用しようとしています。HandleBars/Mustache を使用してテンプレートを作成しました。モデルには、UI のテーブル (div 内) に表示する情報が含まれています。

テーブル内のデータを更新するために、5 分ごとにページをリロードしたいと思います。私は <meta http-equiv="refresh" content="some value" />

ただし、ビュー データはテーブルに保持されません。このシナリオでページを更新するにはどうすればよいですか?

編集:基本的に、ページには検索ボックスがあり、検索項目はテーブルに読み込まれます。メタ タグを使用してページを更新すると、ページが再読み込みされ、テーブル内のデータが失われます。

4

1 に答える 1

1

5分ごとにページをリロードして、テーブルのデータを更新したいと思います。

完全ではありません。ページのテーブルを更新できるように、5分ごとにデータをリロードする必要があります。

あなたはsetTimeoutどこかで、おそらくあなたの見解の中でさえ使うべきですinitialize

start_reloader: function() {
    var _this = this;
    this.timer = setTimeout(function() {
        $.ajax({
            // Load the data from your server...
            success: function(data) {
                _this.redraw_the_table(data);
                _this.start_reloader();
            }
        });
    }, 5*60*1000);
},

initialize: function() {
    this.start_reloader();
}

removeそして、あなたはあなたの中に何かがタイマーを殺したいと思うでしょう:

remove: function() {
    if(this.timer)
        clearTimeout(this.timer);
    return Backbone.View.prototype.remove.apply(this);
}

を使用することもできますが、AJAX呼び出しsetIntervalclearInterval遅延がある場合、それらが互いに積み重なる可能性が(わずかに)あります。

もちろん、これを管理する必要はありません。5分ごとにサーバーから自分自身をリロードするようにモデルまたはコレクションを設定する方が、あなたのケースではより理にかなっているかもしれません。次に、ビューは通常どおりモデルまたはコレクションのイベントにバインドされ、モデル/コレクションからの、、...イベントに応答してテーブルを再描画し'reset'ます'change'

于 2012-06-13T21:51:17.907 に答える