今天调了一天的错误,非常郁闷,直到晚上才发现,原来是页面中定义的XMLHttpRequest对象是个全局对象,但有两个ajax调用都引用了它,每隔几分钟就会出现问题,还是莫名其妙的问题,我以为是数据解析有问题或后台问题,调啊调,结果是两个ajax调用,第二个调用了同一个request,也就是覆盖了第一个的,害得第一个偶尔会得到第二个的值,导致解析出错.......
以后每个ajax调用一定不要用全局的变量保存request.而是临时生成,然后将request绑定它的到处理上.
function test(){
var temp_request = createXMLHttpRequest();
deal_change.request = temp_request;
temp_request.onreadystatechange=deal_change;
temp_request.open("GET",url,true);
temp_request.setRequestHeader("If-Modified-Since","0"); //不缓存Ajax
temp_request.send(null);
}
function deal_change()
{
var rStr;
try{
if(deal_change.request.readyState==4)\\
通过deal_change.request引用调用它的request
{
if(deal_change.request.status==200)
{
rStr = trim(deal_change.request.responseText);
...................
}}}
切记切记.
当然若使用 框架就不用这么麻烦了.