日期:2014-05-18  浏览次数:20743 次

AJAX不更新,大家帮忙看一下啊
写了一个JSP页,显示数据库里的信息,当页面打开的时候自动显示。
第一次显示没有问题,当从当前页添加一个新的信息后,这个页面不显示新的信息,显示了个按钮让他再重新调用一次脚本也不行。
感觉就和没有从数据库里重新提信息试的,就像没添加信息的时候一样,可是数据库里已经更新了,如果重新再打开一次信息就更新了。

经过测试,信息更新以后,脚本运行正常,但脚本不再向SERVLET提交请求

请问是哪里的问题,
JS代码如下:


if(http_request.readyState==4){
if(http_request.status==200){
//alert( "运行 ");
var   doc=http_request.responseXML;
var   citynames=doc.getElementsByTagName( "products ")[0];
var   city=document.getElementById( "province ");
var   citys=document.getElementById( "showcity ");
for(i=city.options.length-1;i> -1;i--){
  city.options.remove(i);
}
for(i=citys.rows.length-1;i> 0;i--){
citys.deleteRow(i);  
}
var   chapteres=citynames.getElementsByTagName( "cityname ");
var   chapteres1=citynames.getElementsByTagName( "cityname ");
for(var   i=0;i <chapteres.length;i++){
if(chapteres[i].childNodes[2].firstChild.data==0){
city.options.add(new   Option(chapteres[i].childNodes[1].firstChild.data,chapteres[i].childNodes[0].firstChild.data));
var   y=citys.insertRow();
y.insertCell().innerHTML= " <input   type=checkbox   name=checkbox   value= "+chapteres[i].childNodes[0].firstChild.data+ "> ";
y.insertCell().innerHTML=chapteres[i].childNodes[1].firstChild.data;  
for(var   k=0;k <chapteres1.length;k++){
//alert(chapteres1[k].childNodes[2].firstChild.data);
if(chapteres1[k].childNodes[2].firstChild.data==chapteres[i].childNodes[0].firstChild.data){
var   y=citys.insertRow();
y.insertCell().innerHTML= " <input   type=checkbox   name=checkbox   value= "+chapteres1[k].childNodes[0].firstChild.data+ "> ";
y.insertCell().innerHTML= "&nbsp;&nbsp; "+chapteres1[k].childNodes[1].firstChild.data;  
}
}
}
}
}else{
alert( "你请求的页面有问题 ");
}
}

------解决方案--------------------
缓存的问题
加httpRequest.setRequestHeader( "If-Modified-Since ", "0 ");
或者给url后面加个随即数