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

时间:2010-09-23 23:32:12

标签: javascript 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请求同时执行?

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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: falsedoc)为AJAX提供默认配置。

答案 2 :(得分:0)

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

您是否在ajax请求之后尝试了旧的alert()调试?