使用js写的刷新操作第一次运行可以,以后就不执行了,为什么?

functionhttpSettingC(){if(xmlHttp.readyState==4){if(xmlHttp.status==200||xmlHttp.stat... function httpSettingC(){
if (xmlHttp.readyState==4){
if (xmlHttp.status==200||xmlHttp.status==0){
window.location.href("update_classify.jsp");
}
}
}
function cchange(){
createObject();
e = arguments[0]||window.event;
src = e.srcElement||e.target;
var url="update_classify_change.jsp?change="+src.value;
xmlHttp.open("get",url,true);
xmlHttp.onreadystatechange=httpSettingC;
xmlHttp.send(null);
}
说明:页面上有一个按钮,onclick="cchange()",update_classify_change.jsp用于更新数据库信息,httpSettingC处理返回结果(其实无返回值),刷新页面。
第一次运行时,数据库更新了,页面也刷新了
再运行,数据库更新,但页面不再更新了。
试了两个浏览器,都是这样...
这是为什么呢?
展开
 我来答
nodejser
2013-01-02
知道答主
回答量:5
采纳率:0%
帮助的人:8.1万
展开全部
太明显是缓存的问题了 ajax这个缓存问题解决起来也非常方便。
解决的办法就是你请求的URL地址的时候加个时间就好 ,浏览器的机制就是这样 。打个最简单的比方。你开第一网站 第一次可能是很慢的。当你开完了 在你没有清除缓存的时候你再开这个网站你就会快很多 因为这个网站的图片 css js文件这些已经缓存在你的机上了。你并没有去服务器重新接收 。
你ajax一个url请求也是同样的道理 你如果第一次请求的url是update_classify_change.jsp的话 那你下次就要加个时间 可以是
var oDate = new Date();
var getTime = oDate.getTime() ;
var url = "update_classify_change.jsp?time=" +getTime;
这样浏览器就不会缓存你的东西 因为他会认为你每次请求的东西都是不一样的。从而就不会给缓存。
业葛菲5V
2013-01-02 · 超过18用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:40.3万
展开全部
可能和浏览器的缓存有关,再次运行时你可以先清除缓存,因为浏览器记录缓存后的status可能会变成304,或者你可以用chrome调试下
追问
那怎么解决呢?
追答
可以去百度搜下禁止缓存的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
molaifeng
2013-01-02 · TA获得超过5273个赞
知道大有可为答主
回答量:1629
采纳率:50%
帮助的人:1770万
展开全部
楼主上面的update_classify_change.jsp和代码所在页面是一个页面么

createObject();这个是创建ajax对象的么

xmlHttp这个是ajax吧,为什么没看到怎么实例出来的,或是在其他地方创建出来的

楼主可以在火狐浏览器下调出firebug查看ajax返回的数据调试
来自:求助得到的回答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jcx5083761
2013-01-02 · TA获得超过275个赞
知道答主
回答量:129
采纳率:0%
帮助的人:51.3万
展开全部
是因为异步调用的原因
追问
能具体说下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式