异步Ajax请求阻止导航器?

时间:2012-09-25 11:00:58

标签: javascript ajax jquery

我有以下代码,我尝试通过'whatever.php'获取一些数据。这个php文件花费大约20秒来获取数据库请求。在服务器回答数据之前,导航器被阻止(如果我使其异步,它允许我进行单击或填充输入,但它仅在提到的20秒后重定向)。我试过中止这个ajax实例,但是在中止之后,它也等了那个时间。

我正在尝试做的是,如果用户不想等待请求完成并且正在显示表格,他应该能够打开指向其他子页面的链接。

var contenidoAjax = $('div#table_solicitudes').html('<p><img src="'.URL.'images/ajax-loader.gif" /></p>');
var instanciaAjax=$.ajax({   
url: whatever.php, 
success: function(data) {   
    if (data == "bad") {
        $('div#table_solicitudes').html("Went bad");
    }
    else {  
        $('div#table_solicitudes').html(data);
    }
}

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

你应该使用&#34; beforeSend&#34;和#34;完成&#34;显示和隐藏指标的方法。

示例:

$.ajax({   
   url: whatever.php, 
   beforeSend: function(){
      $('div#table_solicitudes').html('<p><img src="'.URL.'images/ajax-loader.gif" /></p>'); // add indicator
   },
   complete: function(){
      $('div#table_solicitudes').html(""); // remove indicator
   }
   // existing stuff
}

希望这会有所帮助!!