HTML页面每次打开的时候都清除页面缓存

解决办法为:

(1) 用HTML标签设置HTTP头信息

<HEAD>

<META    HTTP-EQUIV="Pragma" CONTENT="no-cache">

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

<META    HTTP-EQUIV="Expires" CONTENT="0">

</HEAD>

说明:HTTP头信息“Expires”和“Cache-Control”为应用程序服务器提供了一个控制浏览器和代理服务器上缓存的机制。HTTP头信息Expires告诉代理服务器它的缓存页面何时将过期。HTTP1.1规范中新定义的头信息Cache-Control可以通知浏览器不缓存任何页面。当点击后退按钮时,浏览器重新访问服务器已获取页面。如下是使用Cache-Control的基本方法:

  1) no-cache:强制缓存从服务器上获取新的页面

  2) no-store: 在任何环境下缓存不保存任何页面

  HTTP1.0规范中的Pragma:no-cache等同于HTTP1.1规范中的Cache-Control:no-cache,同样可以包含在头信息中。

(2) 在需要打开的url后面增加一个随机的参数:

增加参数前:url=test/test.jsp

增加参数后:url=test/test.jsp?ranparam=random()

说明:因为每次请求的url后面的参数不一样,相当于请求的是不同的页面,用这样的方法来曲线救国,清除缓存

(3)

chrome:

现在新版的Chrome在developer Tools(F12调出来)的Settings(右下角有个齿轮标志)中有了个Disable cache选项。勾了便可以。

(4)ajax方法

方式一:用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下:

$.ajax({
     url:‘www.haorooms.com‘,
     dataType:‘json‘,
     data:{},
     beforeSend :function(xmlHttp){ 
        xmlHttp.setRequestHeader("If-Modified-Since","0"); 
        xmlHttp.setRequestHeader("Cache-Control","no-cache");
     },
     success:function(response){
         //操作
     }
     async:false
  });
方法二,直接用cache:false,

$.ajax({
     url:‘www.haorooms.com‘,
     dataType:‘json‘,
     data:{},
     cache:false, 
     ifModified :true ,

success:function(response){
         //操作
     }
     async:false
  });
(5):用随机数,随机数也是避免缓存的一种很不错的方法!

URL 参数后加上 "?ran=" + Math.random(); //当然这里参数 ran可以任意取了
eg:
<script> 
document.write("<s"+"cript type=‘text/javascript‘ src=‘/js/test.js?"+Math.random()+"‘></scr"+"ipt>"); 
</script>

其他的类似,只需在地址后加上+Math.random() 
注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以 
方法四:用随机时间,和随机数一样。

在 URL 参数后加上 "?timestamp=" + new Date().getTime(); 
(6)用PHP后端清理

在服务端加 header("Cache-Control: no-cache, must-revalidate");等等(如php中)

(7)window.location.replace("WebForm1.aspx");   
参数就是你要覆盖的页面,replace的原理就是用当前页面替换掉replace参数指定的页面。   
这样可以防止用户点击back键。使用的是javascript脚本,举例如下: 
a.html 
以下是引用片段: 
<html> 
     <head> 
         <title>a</title>      
         <script language="javascript"> 
             function jump(){ 
                 window.location.replace("b.html"); 
             } 
         </script> 
     </head> 
     <body> 
        <a href="javascript:jump()">b</a> 
    </body> 
</html>

b.html 
以下是引用片段: 
<html> 
     <head> 
         <title>b</title>      
         <script language="javascript"> 
             function jump(){ 
                 window.location.replace("a.html"); 
             } 
         </script> 
     </head> 
     <body> 
        <a href="javascript:jump()">a</a> 
    </body> 
</html>

(8)添加版本号(如 layout.css?v=1)

个人认为方法2更快,因为清除浏览器缓存还要等浏览器响应。但是每次更改版本号也很麻烦,所以需要想办法自动添加版本号,

以下是本人收集的方法:

方法一:可以通过js自动给html添加版本号

  1. <script type="text/javascript">

  2.  

    document.write("<link rel=‘stylesheet‘ type=‘text/css‘ href=‘/css/layout.css?v="+new Date().getTime()+"‘>");

  3.  

    </script>

方法二:若是jsp页面,可以使用java代码生成时间戳(若是jsp页面用方法一也行,但此方法更方便)

   <link rel="stylesheet" type="text/css" href="/css/layout.css?v=<%=System.currentTimeMillis() %>">

方法三:使用其他的方法添加版本号,如用node.js自动配置等

ps:我们清除缓存的目的是为了及时看到页面的更新情况,当我们将页面上线时(即部署到正式环境,不会再做更改),建议把版本号固定,因为有缓存的页面访问更快,需要更新的时候再更换下固定版本号。

原文地址:https://www.cnblogs.com/vivaxiaonan/p/9378345.html

时间: 2024-11-10 19:42:43

HTML页面每次打开的时候都清除页面缓存的相关文章

怎么解决每次打开Office 2013都提示配置进度

每次打开Office 2013都提示配置进度(包括Word.PPT.Excel等等Office产品都有这种现象),如图,先是显示"安装程序正在准备必要的文件",接着显示"正在配置Microsoft Office Professional Plus 2013"的情况.如果重启完了再打开,还是提示配置进度,怎么解决处理这种问题呢?这里分享两种方法 修改注册表的方法解决Office启动配置问题 1 保证你的Office 2013已经激活 2 打开注册表,在开始菜单下的搜索

关于windows 下每次打开IE 8都弹出欢迎使用Internet Explorer 8 弹窗的关闭方法

今天笔者在安装完windows 操作系统后,发现了一个问题,即每次打开IE 8浏览器,都会弹出一个欢迎界面: 弹窗标题为:设置windows Internet Explorer,具体内容如下图所示: 经过研究发现,最终还是找到关闭弹窗信息的方法,具体步骤如下: 1.运行:gpedit.msc进入组策略管理 2.找到,计算机配置--管理模板--Windows 组件--Internet Explorer,下的[阻止执行首次运行自定义设置] 3.右键编辑,将此项配置成 已启动,选择所需的选项处设置为:

vue 子组件dialog如何每次打开的时候都重新create

DBRuleItemDtl是页面的子组件,用于管理弹窗里面的内容.由于弹窗加载完成一次后,就不再加载.子组件里面create中的事件不再生效,很多旧数据也需要重置为初始状态,非常麻烦.解决方法: 在子组件DBRuleItemDtl中添加v-if=""属性即可,这样每次弹出的弹窗都是重新create后的. 原文地址:https://www.cnblogs.com/luoxuemei/p/9603567.html

office 2010 word 每次打开和关闭都提示宏错误

问题如下: 此错误通常是由宏安全性设置造成的.如果您知道宏来自您信任的来源,则可将宏安全性设置更改为允许启用宏.如果文件在"受保护的视图"中打开,则单击"启用编辑",然后单击"启用内容".将还原编辑功能并运行活动内容,包括宏.该文件当前可信任:只有在其他计算机上打开该文件时,才会显示安全提示 ."更改宏设置"可以在信任中心更改宏安全性设置.但是,如果您在某组织工作,系统管理员可能已更改默认设置以防止任何人更改任何设置.请按照以

每次打开visio2013,visio都是正在配置,解决办法

(转载) 注册表清理过后,(注意!主要是要清理完visio2010及之前的那些没用选项)打开注册表找到HKEY_CLASSES_ROOT\.vsd将其默认值改为Visio.Drawing.11 HKEY_CLASSES_ROOT\.vsdx将其默认值改为Visio.Drawing.15 保存搞定: 作者:知乎用户链接:https://www.zhihu.com/question/37059255/answer/80261519

每次打开office 2013都提示配置进度,必须得等他下完然后重启,重启完了在打开,还是提示配置进度,怎么解决

方法一: 我用下面的方法完美解决.在控制面板中1.删除旧版本2010 或者20032.删除激活程序3.重装2013激活程序done 方法二: 我把WPS卸载了就好了. 方法三: 我是按这个方法解决的,楼主可以试试:按WIN+R键调出运行框,在运行对话框中输入以下命令后点确定:reg add HKCU\Software\Microsoft\Office\15.0\Word\Options /v NoReReg /t REG_DWORD /d 1 方法四: 在修改注册表不能完全解决问题的前提下,要彻

office2016word 每次打开都有进度条问题 解决方式

  最佳答案   每次打开Office 2016都提示配置进度(包括Word.PPT.Excel等等Office产品都有这种现象),如图,先是显示"安装程序正在准备必要的文件",接着显示"正在配置Microsoft Office Professional Plus 2016"的情况.如果重启完了再打开,还是提示配置进度,怎么解决处理这种问题呢?这里分享两种方法 修改注册表的方法解决Office启动配置问题1保证你的Office 2016已经激活 2打开注册表,在开始

vue做的项目每次打开新页面不会显示页面顶部的解决办法

在main.js 中添加代码: 1 router.afterEach((to,from, next) => { 2 3 window.scrollTo(0,0) 4 5 }) 然后就会发现每次打开页面都是显示的是页面顶部内容,再也不会显示页面底部或者其他位置影响用户体验. 原文地址:https://www.cnblogs.com/zr123/p/11929133.html

用Meta 取消流量器缓存实现每次访问都刷新页面方便调试

如果想禁止浏览器从本地缓存中调阅页面,可以设置网页不保存在缓存中,每次访问都刷新页面,下面是Meta在这方便的用法,需要的朋友可以参考下: <!-- 禁止浏览器从本地缓存中调阅页面.--> <meta http-equiv="pragram" content="no-cache"> <!--网页不保存在缓存中,每次访问都刷新页面.--> <meta http-equiv="cache-control" c