【发布时间】:2013-04-12 19:49:37
【问题描述】:
我正在尝试了解整个 deferred 概念,并尝试使用它来同步 fadeIn/fadeOut 动画和 Ajax 调用。
基本上我正在切换页面上的内容:
- 使用 ajax 获取内容
- 响应淡出
- 替换内容
- 淡入
但是,如果我理解 deferreds 是正确的,我也许可以做这样的事情:
- 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吗?
什么是更“标准化”的实现方式?
【问题讨论】:
标签: jquery ajax fadein deferred