日期:2014-05-16  浏览次数:20635 次

Ajax关于时间的问题,麻烦有经验的朋友帮忙看看,请多少留下点思路,谢谢 - Web 开发 / Ajax
JScript code

    <script language="javascript" type="text/javascript">
    <!--
        function childsOperate(id)
        {
            var divId = id;
            var Url = "ReStringForAjax.aspx?Operation=ChildNotesShow&ParentId="+id+"&timestampt="+(new Date()).getTime();
            var UrlParaFlag = 0;
            var UrlParaName = "";
            var AddFlag = 1;
            getResponse(divId,Url,UrlParaFlag,UrlParaName,AddFlag);
        }
    //-->
    </script>   
    <script language="javascript" type="text/javascript">childsOperate("2");childsOperate("3");</script>


现在的问题是这样的childsOperate("2");childsOperate("3");部分调用执行ajax操作,childsOperate("3")返回的数据包含了childsOperate("2")返回的数据,但代码执行下来没看到效果,单执行一个childsOperate("2")是有效果的。我想了想,程序的思路是正确的,页面执行时也没提示错误,问题就出现在ajax返回数据的时间上,我猜想是childsOperate("2")还没返回完数据childsOperate("3")就开始执行了(返回的数据量不大的),结果就没得到自己希望的效果。
对于这样的问题,如何解决呢?麻烦各位能给我点思路,谢谢。

------解决方案--------------------
把异步改为同步,
也就是XMLHttp的第三个参数改为false
这样就必须等前面一个请求完成后,页面才会执行后面的程序
不过在请求未完成之前,整个IE会呈现死机的状态。