0

遅い AJAX 呼び出しが完了するのを待っている間にアンロードされた中間結果を表示しないための推奨されるパターンは何ですか?

たとえば、次のようなコントローラーコードがあります。

this.set('content', function () { Model.find(/* return some long running operation */) });

アプリは、その関数が何らかのデータを返すのを待っている間、ページのコンテンツを空のオブジェクトに設定します。

理想的には、新しいコンテンツがレンダリングされる準備ができるまで表示されたままになる、既に読み込まれたコンテンツがある場合。これを達成するための最良の方法は何ですか?

4

2 に答える 2

0

私はこれを次のように達成しました(これは、新しいオブジェクトをロードするときにコントローラー内にあります):

var _this = this;
search = App.ModelObject.find(...);
search.addObserver('property_that_exists_on_loaded_+object', function (search) {
    _this.set('content', search);
});

よくわかりませんが、ロード後にオブザーバーを削除するためのコードが欠落している可能性があります。これは、ほとんどの使用例で行われているaddObserverことです。

addObserverがオブジェクトに登録される前にそのプロパティが更新された場合、これが起動に失敗するかどうかもわかりません。

于 2013-05-10T23:00:43.777 に答える