使用AJAX时页面卡住了

时间:2012-07-16 09:48:54

标签: php javascript ajax

我正在使用AJAX来呈现计算结果。 我调用一个返回结果的PHP文件,然后将它呈现在网页上。

有时计算需要很长时间,并且页面会一直停滞,直到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;
}

2 个答案:

答案 0 :(得分:0)

如果您需要使用javascript来处理您需要等待回调的请求所发送的数据,那么Ajax是异步的。如果您不需要处理请求中的数据(例如动画等等......),您可以在此函数之外编写代码。

答案 1 :(得分:0)

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