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

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


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);   
        }   
    }   
}   


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

当然是不会自动得联呀,你可以在js里写个线程,然后再设个全局变量,state=0.每次ajax去访问时,如果超时或其实原因没有返回数据,就把state置成1.而让线程时时去扫state,如果发现等1就自动重联