5

如何执行在客户端等待服务器响应时运行的函数?这是我的代码。我查找并找到了一个 .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";
});
4

3 回答 3

12

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

所以:

$.ajax();
yourAwesomeFN();

XhttpRequests 是异步的。不需要额外的工作。

于 2012-08-25T20:52:32.880 回答
3

您是否查看过“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(){
     // Handle the beforeSend event
   },
   complete: function(){
     // Handle the complete event
   }
   // ......
 });
于 2012-08-25T20:53:11.353 回答
1

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

$.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";
});
于 2012-08-25T20:54:19.490 回答