2012-07-16 49 views
-1

我使用AJAX来显示计算结果。 我调用一个返回结果的PHP文件,然后将其呈现在网页上。使用AJAX时页面卡住

有时计算需要很长时间,并且页面卡住,直到AJAX调用返回结果。

有没有办法使用ajax,仍然可以在网页上执行其他操作,而不必等到AJAX调用返回。

我正在使用这个AJAX调用函数(我知道一个标准函数)。

function GetCalculation(str) 
{ 
    var result ; 
    if (window.XMLHttpRequest) 
    { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    { 
     // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     {   
      result = xmlhttp.responseText ;    
     } 
    } 

    xmlhttp.open("GET","GetRouts.php?q="+str,false); 
    xmlhttp.send(); 
    result = xmlhttp.responseText ; 
    return result; 
} 
+0

进行AJAX调用并让页面响应,意味着进行异步AJAX调用。看看[这里](http://www.w3.org/TR/XMLHttpRequest/#the-open-method)。 – 2012-07-16 10:00:48

回答

0

是的,只是将true作为第三个参数传递给open,然后改为在onreadystatechange事件中处理结果。

+0

谢谢,它的工作原理。 – guy 2012-07-16 10:15:15

0

如果您需要使用您的JavaScript来处理请求发送的数据,则需要等待回调,但Ajax是异步的。如果你不需要处理来自请求的数据(例如动画等等),你可以在你的代码之外编写你的代码。