jquery - 使用带有 Promise 的 jQuery 加载

标签 jquery jquery-deferred jquery-load promise

我仍在努力思考deferred以及什么不是,所以考虑到这一点,我有一个关于如何执行以下操作的问题。

我和我的团队有 3 个独立的 .load() 方法,每个方法都会获取一个特定的模板并将其附加到同一个容器中。正如您可能想象的那样,每次加载所需的时间量都不同,因此加载内容时,它会以“阶梯”方式加载(1,然后 2,然后 3)。我想利用deferred objects并等到它们全部完成,然后同时附加它们以删除“楼梯台阶”操作。

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

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

所有三个调用都与上面的调用类似。

我怎样才能实现这个目标?

最佳答案

我在这种情况下使用下一个代码:

$.when(
    $.get('templates/navbar.tmpl.html', function(data) {
        $('#navbar').html(data);
    }),
    $.get('templates/footer.tmpl.html', function(data) {
        $('#footer').html(data);
    }),
    $.Deferred(function(deferred) {
        $(deferred.resolve);
    })
).done(function() {
    $.getScript("js/tools/jquery.min.js");
});

在我看来,它看起来比以前的实现更加结构化并且非常漂亮。

关于jquery - 使用带有 Promise 的 jQuery 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507181/

相关文章:

javascript - 在不使用 &lt;input type ="text"> 的情况下创建输入文本框

javascript - 如果另一个类已经存在,则尝试添加一个类

jquery - 多个div ajax加载

javascript - 在 jQuery 的 Deferred 对象中抛出错误

javascript - 带有递归 Ajax 的 Jquery Promise

javascript - 如何排列 jQuery 延迟对象?

javascript - 替换克隆元素上所有属性的更好方法?

ajax - 使用 AJAX 从特定外部 DIV 加载文本?

jquery - 如何使用 jQuery 从外部页面加载内容?