我试图了解整个deferred
概念,并尝试使用它来将fadeIn
/fadeOut
动画与 Ajax 调用同步。
基本上我在页面上切换内容:
- 使用ajax获取内容
- 响应淡出
- 替换内容
- 淡入
但是,如果我理解deferred
正确,我也许可以做这样的事情:
- fadeOut,同时用ajax初始化Fetch内容
- 当 fadeOut 和 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');
});
我只是不清楚如何使用它。我应该使用 done 还是 then?我应该以聪明的方式使用管道吗?我需要promise
吗?
实现这一点的更“标准化”的方式是什么?