jQuery:如何制作AJAX请求并继续而不等待请求完成?

我想在我的JavasSript函数“后台”中发出一个AJAX请求,但我的脚本在继续执行我的代码之前等待AJAX​​请求完成。

$('div').hide(); $.get('/controller/action', { id: 'abc123' }, function(data){ //request completed //now update the div with the new data $('div').html(data); } ); $('div').slideDown('slow'); //by now hopefully the div has been updated //and the user hasn't waited too long 

问题是slideDown动画等待执行,直到请求返回响应。 如何让动画与ajax请求同时执行?

您的代码应该已经“在后台”(异步)执行Ajax请求。 jQuery.get()方法是以下的简写:

 $.ajax({ url: url, data: data, success: success, dataType: dataType }); 

并且jQuery.ajax()方法是async: true默认情况下为async: true

slideDown()放入成功回调中

 $('div').hide(); $.get('/controller/action', { id: 'abc123' }, function(data){ alert("Request completed"); //now update the div with the new data $('div').slideDown('slow'); } ); 

除非您使用async: false ( doc )为AJAX提供默认配置。

是否有可能div不包含任何东西直到ajax请求完成,因此产生了等待的错觉?

你有没有尝试过ajax请求后的旧的alert()调试?