关于web页面缓存问题解决方法,如图片缓存,异步提交数据页面不更新
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于web页面缓存问题解决方法,如图片缓存,异步提交数据
页面不更新
问题描述:
1、在做异步更新图片的时候,,改变了img节点的src,但是img 图片还是没有更新
2、异步提交数据到后台,如用jquery的$.ajax,$.post,$.get ,发现数据提交不到后台,后台接收不到异步提交上来的数据\ 问题原因:
由于很多浏览器都具备了数据缓存的机制,特别是图片的加载,当你加载完图片之后,如果你再次加载图片的路径和上次加载图片的路径是一样的,
浏览器就不从后台拿数据了,直接把你上次浏览的数据缓存下来,然后拿给你,这样的好处是可以提高用户体验,客户端浏览数据更快,不好的地方是,
后台更新的数据不能马上反馈到前台
解决方法:
在页面表头添加,避免数据缓存
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
然后,每次更新数据的路径,可以加上随机的参数,例如在后台用system类生成一个随机数直接加在返回路径后面
String random = System.currentTimeMillis()+"" ;
return
"http://localhost:8080/XiongFeng/ClientFeedBackComfirm.jpg?r andom="+random
在前台,我们用异步机制提交数据到后台的时候,我们也可以在后面添加随机数(new Date()).getTime()
$.ajax({
cache: false,
type: "POST",
url:"hotel/HandleDeskOrderCart?time="+(new Date()).getTime(),
data:$('#deskForm').serialize(),// 你的formid
error: function(request) {
alert("网络出现错误");
return ;
},
success: function(data) {
alert(data);
}
});
这样后台就不会因为缓存而接收不到数据。