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= " "+chapteres1[k].childNodes[1].firstChild.data;
}
}
}
}
}else{
alert( "你请求的页面有问题 ");
}
}
------解决方案--------------------缓存的问题
加httpRequest.setRequestHeader( "If-Modified-Since ", "0 ");
或者给url后面加个随即数