当前位置: 代码迷 >> Web前端 >> jquery load缓存有关问题
  详细解决方案

jquery load缓存有关问题

热度:85   发布时间:2012-09-05 15:19:35.0
jquery load缓存问题
最近在做项目,遇到一个奇怪问题,在A页面load B页面的时候,第一次打开时很正常,
<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下都可以正常刷新
  相关解决方案