使用jQuery加载承诺

前端之家收集整理的这篇文章主要介绍了使用jQuery加载承诺前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我还在努力把我的头围绕着 deferred,还有什么没有,所以在这一点上,我有一个关于如何做以下的问题.

我的团队和我有3个单独的.load()方法,每个都抓住一个特定的模板,并将其附加到同一个容器.每个负载需要不同的时间量,所以当内容加载时,它会以“阶梯”的方式加载(1,然后是2,然后3).我想使用deferred objects,等到它们都完成,然后在同一时间附加它们来删除“楼梯步”动作.

$('<div>').load(baseInfoTemplate,function () {
    var baseData = {
        // build some object
    };

    $.tmpl(this,baseData).appendTo($generalContainer);
});

所有三个呼叫都与上述呼叫类似.

我该如何实现?

解决方法

$.load()不是设计用于Deferred对象,而且还专门用于将东西放到页面中.

解决后一个问题,您必须将整个容器放在DOM外部,然后将它们全部完成,或者您需要累积三个结果,然后将它们全部放在一起.

下面的过程使用后一种方法

>使用$.get(),并创建一个由$.get()返回的jqXHR对象的数组,
>将每个$.get()的返回片段存储在数组中
>使用$.when.apply($,myArray).done(function(){…})应用模板并将其放入DOM

http://jsfiddle.net/alnitak/WW3ja/

猜你在找的jQuery相关文章