私はdeferred
コンセプト全体を理解しようとしており、それを使用してfadeIn
/fadeOut
アニメーションを Ajax 呼び出しと同期させようとしています。
基本的に、ページのコンテンツを次のように切り替えています。
- ajax でコンテンツを取得する
- 応答時フェードアウト
- コンテンツを置き換える
- フェードイン
ただし、deferred
私が正しいことを理解していれば、次のようなことができるかもしれません。
- フェードアウトし、同時に ajax で Fetch コンテンツを初期化します
- フェードアウトとコンテンツのフェッチの両方が完了した場合: コンテンツの変更
- フェードイン
元のソリューションのコード:
$.get(url, function(page) {
$('#content').fadeTo(100, 0, 'linear', function() {
$(this).html(page.text).fadeTo(400, 1, 'linear');
});
}
私はこのようなことをしようとしています:
var deferred1 = $.get(url);
var deferred2 = $('#content').fadeTo(100, 0, 'linear').promise();
$.when(deferred1, deferred2).done(function() {
$('#content').html(page.text).fadeTo(400, 1, 'linear');
});
ただ使い方がはっきりとわかりません。そして、私は完了またはその後を使用する必要がありますか? 賢い方法でパイプを使用する必要がありますか? 必要promise
ですか?
これを実装するためのより「標準化された」方法は何でしょうか?