2012-09-25 91 views
1

我有以下代码,我试图通过'whatever.php'获取一些数据。这个PHP文件花费大约20秒来获取数据库请求。在服务器回答数据之前,导航器被阻塞(如果我使其成为异步的,它允许我点击或填充输入,但它只在提到的20秒后重定向)。我尝试中止这个ajax实例,但是在中止之后,它也等待了这个时间。异步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); 
    } 
} 

感谢您的时间!

+0

请删除您的代码中的转义 – Bergi

+0

请求异步(是不是已经?)和预期的行为之间有什么区别? – Bergi

+0

是的,它是异步的。这就是我提出这个问题的原因。这个代码应该按我的理解工作吗? –

回答

1

您应该使用“beforeSend”和“complete”方法来显示和隐藏指示器。

例子:

$.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 
} 

希望这将帮助!

+0

谢谢,但它与此无关,因为我将以单独的答案张贴。 –