Ajax 长时间无响应问题

最近做索引,在action处理中,如果注释掉更新索引的方法,Ajax则可以正常响应,但是取消注释,则后台处理完成了,数据库的数据更新,索引的文档更新都完成后,页面却无任何反应,刚开始以为是ajax响应问题,所以网上找到这篇文章,不过,后来发现我的项目中并不是由于这个问题的所在,故不知该文是否是解决该问题的最终方案,但还是先收藏该文,以备后用。

 

XML/HTML代码

/*   

var http_request=false;   

  function send_request(url,method,postStr){//初始化,指定处理函数,发送请求的函数   

    http_request=false;   

    //开始初始化XMLHttpRequest对象   

    if(window.XMLHttpRequest){//Mozilla浏览器   

     http_request=new XMLHttpRequest();   

     if(http_request.overrideMimeType){//设置MIME类别   

       http_request.overrideMimeType("text/xml");   

     }   

    }   

    else if(window.ActiveXObject){//IE浏览器   

     try{   

      http_request=new ActiveXObject("Msxml2.XMLHttp");   

     }catch(e){   

      try{   

      http_request=new ActiveXobject("Microsoft.XMLHttp");   

      }catch(e){}   

     }   

    }   

    if(!http_request){//异常,创建对象实例失败   

     window.alert("创建XMLHttp对象失败!");   

     return false;   

    }   

    //确定发送请求方式,URL,及是否同步执行下段代码   

    http_request.open(method,url,true);   

    //不加下边这段POST不成功 具体做啥的不知道    

    http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");     

    if(method=="GET"){   

    http_request.send(null);   

    }else{   

     http_request.send(postStr);   

    }   

  }   

  */   

var http_request;    

function createXMLHttpRequest() {    

  if (window.ActiveXObject) {    

   http_request = new ActiveXObject("Microsoft.XMLHTTP");    

  }else if (window.XMLHttpRequest) {    

  http_request = new XMLHttpRequest();    

  }    

}    

function send_request(url,method,postStr) {    

   createXMLHttpRequest();    

   //http_request.setRequestHeader("If-Modified-Since","0");   

   http_request.open(method,url,true);   

   http_request.setRequestHeader("If-Modified-Since","0");   

    if(method=="GET"){   

    http_request.send(null);   

    }else{   

     http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");        

     http_request.send(postStr);   

    }   

}     

  //处理返回信息的函数   

  function processrequest(){   

    //alert(http_request.readyState);   

    //alert(reobj);   

   if(http_request.readyState==4){//判断对象状态   

     if(http_request.status==200){//信息已成功返回,开始处理信息   

      document.getElementById(reobj).innerHTML=http_request.responseText;   

     }   

     else{//页面不正常   

      alert(http_request.readyState);   

      alert("您所请求的页面不正常!");   

     }   

   }   

  }   

  function dopage(obj,url){   

   document.getElementById(obj).innerHTML="正在读取数据...";   

   //alert(url);   

   send_request(url,"GET");   

      reobj=obj;   

    http_request.onreadystatechange=processrequest;   

    //http_request.onreadystatechange=alert(http_request.readyState);   

   }   

 //下拉菜单 跳转选择静态第一页   

function GoToWhere(s,p)     

{   

    var obj='result';   

    var d=s.options[s.selectedIndex].value;    

    surl="detail_list.php?status=2&pro_id="+p+"type="+d;   

    document.getElementById(obj).innerHTML="正在读取数据...";   

    send_request(surl,"GET");   

    reobj=obj;   

    //alert(http_request.readyState);   

    http_request.onreadystatechange=processrequest;   

    

}      

   //post方法验证用户名与密码是否正确   

   function getCheck(){   

    var res =checkfrom();   

        if(res){   

                    var discuzuser=document.getElementById("discuzuser").value;   

                    if(discuzuser){   

                        document.form2.submit();       

                    }   

                    else{   

                    var username=document.getElementById("username").value;   

                    var password=document.getElementById("password").value;    

                    var postStr = "username="+username+"password="+password;    

                   

                    //ajax post默认是UTF8 去那边转码了   

                    send_request("http://dp.cnmo.com/checkuser.php","POST",postStr);   

                    http_request.onreadystatechange = function(){    

                        if (http_request.readyState == 4) {   

                               if (http_request.status == 200) {   

                                var http_result2 = http_request.responseText;   

                                if(http_result2){   

                                document.getElementById("checkuser").style.display="";   

                                document.getElementById("checkuser").innerHTML = http_result2;   

                                }else{   

                                        document.form2.submit();              

                                    }   

                                }   

                            }   

                        }   

                    }   

            }//end if res   

 }     

   

关键一句

XML/HTML代码

http_request.setRequestHeader("If-Modified-Since","0");  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值