分享

关于web页面缓存问题解决方法,如图片缓存,异步提交数据页面不更新

 WindySky 2018-02-25

问题描述:

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?random="+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);
               }
           });

这样后台就不会因为缓存而接收不到数据

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多