当前位置: 首页 > 面试题库 >

jQuery .when和多个.load

堵远航
2023-03-14
问题内容

我想在操作完成后使用一个回调函数,我正在尝试如下操作:

$.when(
    $('#detail1').load('/getInfo.php'),
    $('#detail2').load('/getOther.php')
        ).then(function(a,b){
            alert("done");
        });

问题在于,在操作完成之前会触发回调函数。


问题答案:

这是因为jQuery.when()需要jQuery.Deferred实例,而load()返回jQuery实例(请参见http://api.jquery.com/jQuery.when/和http://api.jquery.com/load/)。

您可以解决此问题:

// Create two Deferred instances that can be handed to $.when()
var d1 = new $.Deferred();
var d2 = new $.Deferred();

// Set up the chain of events...
$.when(d1, d2).then(function() {
    alert('done');
});

// And finally: Make the actual ajax calls:
$('#detail1').load('/getInfo.php', function() { d1.resolve(); });
$('#detail2').load('/getOther.php', function() { d2.resolve(); });


 类似资料:
  • 问题内容: 我正在尝试使用触发两个请求,然后在两个请求完成后调用一些函数。这是我的代码: 但是,这没有按预期方式工作。Ajax调用将返回要在其中使用的数据,而Ajax调用将返回要分配给var count并随后在中使用的count 。 但是,当我启动上面的代码时,先被调用,然后再将数据保留为as 。我如何才能做到这一点,据我所知,只有当两个返回的函数都执行时,才能进行。我希望两个ajax调用都应该并

  • 我发现,当我的多个请求都成功时,它们可以正常工作,但是如果其中一个请求因任何原因失败,我的回调就不会执行。我查了jQuery留档,上面写着 在将多个延迟对象传递给jQuery.when()的情况下,该方法从一个新的“主”延迟对象返回promise,该对象跟踪已传递的所有延迟的聚合状态。当所有延迟被解决时,该方法将立即解决其主延迟,或者当其中一个延迟被拒绝时,该方法将立即拒绝该主延迟 这意味着如果我

  • 我成功地为1台服务器设置了Kerberos身份验证,并且运行正常。现在我有一个项目,我必须在其中向Kerberos配置添加另一台服务器,如下所示: 1)广告服务器 2)运行服务的服务器1 3) 服务器 2,其中将运行相同的服务 所以我执行了 setpn 命令,将两者都评估为单个“spn”用户: setspn-s服务X/server1.domain.com@DOMAIN.COM特殊目的网络 sets

  • 我有两个配置文件(“autoContido”和“weblogic”),其中每个配置文件都有两个配置类,因为我使用的是两个数据源。 我已经将特定数据源中的bean注释为@Primary,而另一个数据源配置类中的bean不是@Primary,但我对它们的命名不同。 我以为使用@主注释就不会有像下面这样的错误,但我仍然得到它们。有人能帮我看看问题出在哪里吗? 我尝试使用@Primary annotati

  • 问题内容: 我正在使用Spring和Hibernate,Spring的配置如下。如何配置两个数据源, session factories。使用注释管理事务。请指教 问题答案: 在Hibernate DAO中,我们可以使用@Qualifier注释,如下所示连接2个会话工厂

  • 问题内容: 我有两个数据库和两个模型:管理员和用户。 我想将我的模型同步到两个数据库;admin模型到数据库A,用户模型到数据库B; 如果我将模型路径设置为和,则两个模型将同步到默认数据库。 如果我在命令中设置数据库,例如,则两个模型将同步到数据库B。 所以我的问题是,如何将两个模型同步到两个数据库? 问题答案: 我完全同意@alecxe使用数据库路由器。我目前正在使用一个管理界面来管理多个数据库