用AJAX每隔一段时间进行询问,是个小问题,请大家帮忙(举手之劳)
我的设计是这样的:当用户在点击一个按钮后,进入到我现在这个页面,同时在后台开启一个线程执行远程任务,任务执行完毕后将一个结果文件写入某个目录下。
这个页面是个等待页面,在这个页面上有一个等代提示画面,我想用Ajax进行这样的操作:每隔3秒钟向服务器发出请求,看看这个结果文件是否生成,如果生成,就跳转到另外一个页面,如果超过一定询问次数,就自动跳转到一个默认页面。我的程序是这样写的:
<script language="javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "结果文件的URL", true);
xmlHttp.send(null);
}
function check() {
//询问5遍
for (i = 1; i <= 5; i++) {
setTimeout("startRequest()", 3000)
}
//如果询问5遍后仍没有跳转,则跳转至默认页面
location.href = "http://www.sohu.com";
}
function handleStateChange() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
if (xmlHttp.responseText != '') {
//如果结果文件已经生成,则跳转入指定页面
location.href = "http://www.csdn.net";
}
}
}
}
</scrupt>
我在<body onload="">里面触发该事件:<body onload="check();">
但是我这样做程序执行起来好像不太对劲,请各位高手帮我解决一下。谢谢。