如何在什么条件下使用“队列”或“延期”?他们的设计目的是什么?

时间:2011-11-14 08:56:53

标签: jquery queue deferred

我很困惑,是"队列"用于动画并推迟播放" ajax"?有人可以告诉我一些典型的例子吗?

1 个答案:

答案 0 :(得分:6)

你大部分都是正确的。

“延迟对象”可用于处理异步事件 - 您启动操作然后注册将在操作完成时调用的回调。这包括AJAX,尽管还有很多其他用途。

jQuery队列确实主要用于维护(动画)函数的队列以便按顺序调用,.queue()专门用于将您自己的函数添加到动画队列中。

更复杂的是,动画也可以在完成后触发异步回调。执行此操作的“传统”方法是为动画函数提供回调,但如果在jQuery对象上调用.promise(),则使用现代jQuery,您将获得一个延迟对象,当每个元素上的任何现有动画都将解析该对象在该对象内完成:

$('#id1,#id2').slideUp().promise().done(function() {
    // this will be called when the animations are complete
});