stdio0929
啊军_janson
2009-06-09 13:02

请教利用ajax实现断网重连的功能

已采纳

我有一个会不定时自动转换页面的web程序,我现在需要在每次自动转换前检查客户端是不是可以连通服务器,如果是连通了再转换页面,否则利用ajax自动重连,再我发现不会重新请求页面。请问是为什么呢?

[code="java"]

<!--
    var xmlhttp;
    // 创建一个XMLHTTPRequest对象
    function createXMLHTTPRequest(){
          if(window.ActiveXObject) {
               xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        else if(window.XMLHTTPRequest){
           xmlhttp = new XMLHTTPRequest();
        }
    }

    function proc(i){
        createXMLHTTPRequest();
        xmlhttp.open("get","http://localhost:8080/study/testAjax.jsp?param="+i,true);
        xmlhttp.onreadystatechange = doChange;
        xmlhttp.send("");
    }

    function doChange(){
        if(xmlhttp.readyState==4){
            if(xmlhttp.status!=200){
                alert("服务器错误,重新连接!");
                retry(5);
            }else{
                alert("服务器正确,进入一个新的页面!");
                retry(5);
            }
        }
    }


    var limit='0:5'  //定义刷新时间

    var parselimit=limit.split(":")
    parselimit=parselimit[0]*60+parselimit[1]*1

    function beginrefresh(){
    if (parselimit==1){
        proc(0);
    }else{ 
        parselimit-=1
        curmin=Math.floor(parselimit/60)
        cursec=parselimit%60
        if (curmin!=0)
            curtime=curmin+"分"+cursec+"秒后重刷本页!"
        else
            curtime=cursec+"秒后重刷本页!"
            window.status=curtime
            setTimeout("beginrefresh()",1000)
        }
    }

    var time = 1;
    function retry(retryTime){
        time = retryTime;
        var retry = false;

        if(retry){
            proc(1);
        }else{
            time -=1;
            if(time==1){
                alert("刷新页面");
                retry = true;
                proc(2);
            }else{
                setTimeout("retry("+time+")",1000);
            }
        }
    }

[/code]

我在testAjax.jsp这个页面中打印param只打印了param=0和param=2后就不再打印了,就算你并了tomcat也是这样,怎么会这样呢?请教了!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • wanghaolovezlq wanghaolovezlq 12年前

    [code="java"]

    <!--
    
        // 创建一个XMLHTTPRequest对象
        function createXMLHTTPRequest(){
            var xmlhttp;
              if(window.ActiveXObject) {
                   xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
            }
            else if(window.XMLHTTPRequest){
               xmlhttp = new XMLHTTPRequest();
            }
    
            return xmlhttp;
        }
    
        function proc(i){
            var xmlhttp = createXMLHTTPRequest();
            xmlhttp.open("get","http://localhost:8080/study/testAjax.jsp?param="+i,true);
            xmlhttp.onreadystatechange = doChange;
            xmlhttp.send("");
        }
    
        function doChange(){
            if(xmlhttp.readyState==4){
                if(xmlhttp.status!=200){
                    alert("服务器错误,重新连接!");
                    retry(5);
                }else{
                    alert("服务器正确,进入一个新的页面!");
                    retry(5);
                }
            }
        }
    
    
        var limit='0:5'  //定义刷新时间
    
        var parselimit=limit.split(":")
        parselimit=parselimit[0]*60+parselimit[1]*1
    
        function beginrefresh(){
        if (parselimit==1){
            proc(0);
        }else{ 
            parselimit-=1
            curmin=Math.floor(parselimit/60)
            cursec=parselimit%60
            if (curmin!=0)
                curtime=curmin+"分"+cursec+"秒后重刷本页!"
            else
                curtime=cursec+"秒后重刷本页!"
                window.status=curtime
                setTimeout("beginrefresh()",1000)
            }
        }
    
        var time = 1;
        function retry(retryTime){
            time = retryTime;
            var retry = false;
    
            if(retry){
                proc(1);
            }else{
                time -=1;
                if(time==1){
                    alert("刷新页面");
                    retry = true;
                    proc(2);
                }else{
                    setTimeout("retry("+time+")",1000);
                }
            }
        }
    

    [/code]

    点赞 评论 复制链接分享