最近在做项目,遇到一个奇怪问题,在A页面load B页面的时候,第一次打开时很正常,
上面的infoCommentPage 是一个DIV的ID,
但后面在B页面提交后,要刷新B页面,问题就出来了,提交到后台的代码运行了,数据库也有数据了,然后重新redirect回来,死活B页面不刷新,没有看到最新的内容,在firefox下用firebug可以看到请求后台数据了后台断点也进去了,
但页面依旧是没有刷新,用ie8更离谱了,提交加入库的断点进去了,但是请求B页面的断点根本没有进去,这样搞死人了,找了半天,以为是JS有问题,后来用上了load的回调函数,
发现load方法 是调用的,所以就怀疑是缓存问题,果然一查,就是缓存搞的鬼。
然后在B页面上加入
这样就解决了问题,在FF下仔细看还可以发现,load方法请求的时候后面都自动加上了时间
,无论在FF,IE下都可以正常刷新
<script type="text/javascript">
$.ajaxSetup({cache: false});
loadCC:function(){
$("#infoCommentPage").load("${webRoot}/info/comment/${modelId}/${info.id}/1");
}
};
$(document).ready(function(){
P.loadCC();
});
</script>
上面的infoCommentPage 是一个DIV的ID,
但后面在B页面提交后,要刷新B页面,问题就出来了,提交到后台的代码运行了,数据库也有数据了,然后重新redirect回来,死活B页面不刷新,没有看到最新的内容,在firefox下用firebug可以看到请求后台数据了后台断点也进去了,
但页面依旧是没有刷新,用ie8更离谱了,提交加入库的断点进去了,但是请求B页面的断点根本没有进去,这样搞死人了,找了半天,以为是JS有问题,后来用上了load的回调函数,
("#xxx").load("xxxx",function(){alert("aaaa");});
发现load方法 是调用的,所以就怀疑是缓存问题,果然一查,就是缓存搞的鬼。
$.ajaxSetup({cache: false});
然后在B页面上加入
<meta charset="utf-8" />
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
这样就解决了问题,在FF下仔细看还可以发现,load方法请求的时候后面都自动加上了时间
,无论在FF,IE下都可以正常刷新