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"; }); 

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

所以:

 $.ajax(); yourAwesomeFN(); 

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

你看过“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 } // ...... }); 

在JS中执行另一个函数你不能执行一个函数,因为它是单线程的:你可以在之前之后做一些事情 – 你是否正在寻找一种方法来设置一个消息/微调器在等待时显示? 检查$.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"; });