代码如下:
var xmlhttp = createxmlhttp();
     xmlhttp.open("POST",path+"/xxx.jsp",true);//这里的xxx.jsp是加入XML数据的
     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     xmlhttp.send("big=<%=big%>&time="+new Date().getTime());  
     xmlhttp.onreadystatechange=function(){
     if(xmlhttp.readyState==4)
       {if(xmlhttp.status==200){
               if(xmlhttp.responseText){getxml();} //有返回了去显示XML文件      
   }
   else
     {}}}

本想异步发出请求,数据添加完后再来显示XML的数据,可是就是得不到最新的数据,要过一会儿刷新才会有,时间好像有2,3秒,然后查资料说用同步,于是我改成下面这种,
var xmlhttp = createxmlhttp();
     xmlhttp.open("POST",path+"/xxx.jsp",false);//这里的xxx.jsp是加入XML数据的
     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     xmlhttp.send("big=<%=big%>&time="+new Date().getTime());  
     if(xmlhttp.responseText){getxml();}//说同步后就不用onreadystatechange了,如果不去掉这个IE和FF都不执行了,也不报错。这样也可以运行,但还是没有同步,更没有什么挂起IE操作这种效果,难道只能用刷新程序吗?还有用刷新要怎么用呢?判断什么条件?

解决方案 »

  1.   

    其实我想不通的是,xmlhttp.responseText有了返回值,说明JSP已经完成了写入,然后这个时候马上去读取数据,应该刚好啊,我存数据的是XML文件,好像数据库从来没这个问题。
      

  2.   

    找到个以前的帖子,希望能帮到你。http://topic.csdn.net/u/20101126/13/63309858-db6c-42f7-aa97-244258cb0951.html
      

  3.   

    用异步调用,在xmlhttp.open("POST",path+"/xxx.jsp",true)里给请求发送的路径加上一个参数
    xmlhttp.open("POST",path+"/xxx.jsp?time="+new Date().getTime(),true)。
      

  4.   

    连续发送,用多个不同的xmlhttp试试。var xmlhttp[0] = createxmlhttp();
    var xmlhttp[1] = createxmlhttp();
    var xmlhttp[2] = createxmlhttp();
      

  5.   

    无效,好像理论上POST不用,而且我后面的send上也跟了~
      

  6.   

    这个是我没写清楚,我本来是两个函数的,提问时为大家看的方便,,所以取出来放一起,下面输出的xmlhttp你可以当作是xmlhttp1
      

  7.   

    顾名思义,异步的话当然不能马上得到数据,必须用同步的,思路并没有错 但是不知道你在哪看的必须不要onreadystatechange,我用了,没问题的
      

  8.   

    好吧,我也不知道怎么问了,感觉AJAX真是理解不了啊,求个例子吧,就是同步请求一个页面,这个页面不返回,当前页面就不能做任何操作。