注册 登录
编程论坛 jQuery论坛

ajax重复请求XML

ly_57 发布于 2007-04-04 22:56, 1972 次点击
代码:
//对GET方法的封装
function ajaxSendGet(url,processRequest) {
ajaxHttpRequest.open("GET",url,true);
ajaxHttpRequest.send(null);
ajaxHttpRequest.onreadystatechange = processRequest;
}
function getUsersCallBack{...}
问题:
在页面加载时调用了ajaxSendGet("users.xml",getUsersCallBack),在getUsersCallBack中读取XML数据并把数据填充到一列表框中.
页面中有一button,目的是可通过点击它来刷新列表框,button的onclick事件中第二次调用了ajaxSendGet("users.xml",getUsersCallBack),函数ajaxHttpRequest的第一条语句:ajaxHttpRequest.open("GET",url,true);执行时ajaxHttpRequest.readyState = 1,但是执行完第二条语句send后,ajaxHttpRequest.readyState的值直接变为4,而且一直保存下去,导致根本进入不了getUsersCallBack.
请教各位高手是什么原因!
3 回复
#2
牛虻2007-04-05 11:52

readyState=4 表示请求完成,应该不是导致进入不了的getUserCallBack的原因,能否把getUsersCallBack函数代码一起发上来看看

#3
ly_572007-04-22 16:50
不好意思,最近忙得都忘了上来看,我认为问题的原因在于重复请求同一个xml文件时就会发生这种情况,不知道各位高手有没有解决办法
#4
编程之星2007-04-26 12:44

你加入下面这两句试试:

delete ajaxHttpRequest;
ajaxHttpRequest=null;

上面的代码的意思是:将当前请求后的XMLHTTP对象从内存中删除,当再次调用函数时,又重新创建了XMLHTTP对象.

或者你也可以在请求参数中加入当前时间(如:new date().toString())[注:这个方法我没有尝试过,看书的.不知道行不行]

1