zoukankan      html  css  js  c++  java
  • Web项目中,常用的几种清理浏览器缓存的方式

    在系统中遇到页面中的图像已经修改,数据库的数据也更新成了最新的数据,但在另一个模型的页面查询此图像时,依然是未修改的状态,经确认是页面的缓存没有清理,清理的方法是:

    在html文件中,增加清理缓存的内容:

    <head>

    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <META HTTP-EQUIV="expires" CONTENT="0">

    </head>

    <body>........</body>;

    其他的清理缓存的方法:

    在B/S架构的项目中,访问web项目时,往往需要清理浏览器的缓存数据,js ,css 等等。

    方法1:
    在引用的js ,css ,图片,等文件的url 处加一个变量,生成一个随机数字

    <script type="text/javascript" src="<%=request.getContextPath()%>/test/common/jquery.js?r="+Math.random()></srcipt>

    方法2:
    在jsp或html页面中,meta标签中添加属性值

    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META HTTP-EQUIV="expires" CONTENT="0">

    方法3:
    在js提交表单时的请求方法上添加控制缓存的方法

    如果是form表单提交,则在表单上添加一个属性
    <body onLoad="javascript:document.creatForm.reset();">

    2.如果是jquery的ajax提交方式,则如下,添加before函数做处理

    $.ajax({
    url:'QueryUserList.do',
    dataType:'json',
    data:{},
    beforeSend :function(xmlHttp){
    xmlHttp.setRequestHeader("If-Modified-Since","0");
    xmlHttp.setRequestHeader("Cache-Control","no-cache");
    },
    success:function(response){
    //操作
    }
    async:false
    });

    3.或者添加cache 属性

    $.ajax({
    url:'QueryUserList.do',
    dataType:'json',
    data:{},
    cache:false,
    ifModified :true ,
    success:function(response){
    //操作
    }
    async:false
    });

    方法4:
    使用Crtl+F5 跳过缓存,请求新数据,支持部分浏览器

    方法5:
    创建一个windows环境的清理浏览器缓存的批处理文件(clearCache.bat),在打开浏览器之前运行一下清理缓存的批处理文件
    //调用的是Windows 自带的API函数,针对IE有效,代码如下:
    @echo 现在清除Cookies
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 2
    @echo 现在清除浏览历史
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 1
    @echo 现在清除临时文件夹
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 8
    @echo 现在清除保存的密码
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 32
    @echo 现在清除表单数据
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 16
    @echo 清除以上所有项目
    @Rundll32 InetCpl.cpl,ClearMyTracksByProcess 255
    ————————————————
    版权声明:本文为CSDN博主「dreaming317」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/dreaming317/article/details/104268185

  • 相关阅读:
    Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
    Excel里的单元格提行
    Ubuntu各版本的历史发行界面
    CentOS常用命令、快照、克隆大揭秘
    虚拟网络编辑器的知识和出现的一些问题(没有VMnet0或VMnet8)
    CentOS图形界面下如何安装Eclipse和使用maven
    Hadoop MapReduce编程 API入门系列之mr编程快捷键活用技巧详解(四)
    Hadoop MapReduce概念学习系列之mr程序详谈(二十三)
    Hadoop MapReduce概念学习系列之mr的Shuffle(二十二)
    Hadoop MapReduce概念学习系列之JobTracker、ResourceManager、Task Tracker、NodeManager(二十一)
  • 原文地址:https://www.cnblogs.com/obsession-with-the-young-monk/p/15353765.html
Copyright © 2011-2022 走看看