jquery在加载ajax响应时执行函数

时间:2012-08-25 20:44:25

标签: javascript jquery ajax

如何在客户端等待服务器响应时执行将运行的函数?这是我的代码。我查了一下,发现了一个.load()函数,但这又如何适应呢?任何帮助都会很棒!感谢

$.ajax({
    type: "POST",
    url: "mail.php",
    data: {name: name.val(), email: email.val(), phone: phone.val(), subject: subject.val(), message: message.val()}
    }).done(function(){
        alert("Your message was sent. We will be in contact with you shortly.");
        window.location="index.html";
});

3 个答案:

答案 0 :(得分:11)

您编写的下一行代码 您调用$ .ajax()将在浏览器等待响应时运行。

所以:

$.ajax();
yourAwesomeFN();

XhttpRequests是异步的。无需额外的工作。

答案 1 :(得分:2)

你看过the "beforeSend" param

$.ajax({
type: "POST",
    url: "mail.php",
    data: {name: name.val(), email: email.val(), phone: phone.val(), subject: subject.val(), message: message.val()},

   beforeSend: function(){
     // Handle the beforeSend event
   },
   complete: function(){
     // Handle the complete event
   }
   // ......
 });

答案 2 :(得分:1)

当在中执行另一个函数时,你无法执行函数,因为它是单线程的:你可以在和之前做之后的事情虽然 - 您是否正在寻找一种方法来设置在等待时显示的消息/微调器?查看$.ajax()来电中的beforeSend选项:

$.ajax({
    type: "POST",
    url: "mail.php",
    data: {name: name.val(), email: email.val(), phone: phone.val(), subject: subject.val(), message: message.val()}
    beforeSend : function(){

        // do your stuff here

    }
    }).done(function(){
        alert("Your message was sent. We will be in contact with you shortly.");
        window.location="index.html";
});