禁止页面缓存的办法

本文介绍了PHP、HTML及ASP等环境下禁用浏览器缓存的方法,包括设置HTTP头部信息及利用元标签,确保用户每次都能获取到最新的网页内容。

php禁止页面缓存的办法

1 //设置此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。
2 header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
3 //设置此页面的最后更新日期(用格林威治时间表示)为当天,可以强制浏览器获取最新资料
4 header('Last-Modified: ' gmdate('D, d M Y H:i:s').' GMT');
5 //告诉客户端浏览器不使用缓存,HTTP 1.1 协议
6 header('Cache-Control: no-cache, must-revalidate');
7 //告诉客户端浏览器不使用缓存,兼容HTTP 1.0 协议
8 header('Pragma: no-cache');

可总结为一个如下的函数,然后直接调用即可。

1 function nocache_headers(){
2     @header('Expires: Thu, 01 Jan 1970 00:00:01 GMT');
3     @header('Last-Modified: ' gmdate('D, d M Y H:i:s').' GMT');
4     @header('Cache-Control: no-cache, must-revalidate, max-age=0');
5     @header('Pragma: no-cache');
6 }

HTML禁止页面缓存的办法

1 <META HTTP-EQUIV="pragma" CONTENT="no-cache">
2 <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
3 <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
4 <META HTTP-EQUIV="expires" CONTENT="0">

ASP禁止页面缓存的办法

response.expires=0
response.addHeader("pragma","no-cache") 
response.addHeader("Cache-Control","no-cache, must-revalidate")

JSP禁止页面缓存的办法

response.addHeader("Cache-Control", "no-cache");
response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");

统一的解决办法

对于页面的swf视频缓存问题,会出现第一次显示第二次至以后都不显示,除非刷新浏览器才会再显示的问题,可以通过在引用的文件后面带上时间参数解决,比如php的页面,如果引用了这么一个flash文件,http://www.phpernote.com/example.swf,则可以通过这种办法解决,即:http://www.phpernote.com/example.swf?v=<?php echo time();?> 这种办法即可解决上面说的这个问题。

转载请注明出处: php程序员的笔记
若依页面缓存后列表不刷新可尝试以下解决办法: - **设置参数配置**:在相关配置中,将 `noCache` 参数设置为 `true`,因为默认是 `false`,设置为 `true` 可以让每次跳转都刷新缓存。若菜单不刷新且无配置处,可在前端的菜单设置里配置不缓存(若依框架)[^1]。 - **禁止浏览器缓存**:当修改代码保存后页面未更新,可能是缓存开启了。在浏览器的 `Network` 里勾选 `Disable cache` 重新加载页面,打开该选项后,`http` 请求头会多 `Cache-Control`、`Pragma` 这两个东西 [^2]。 - **解决网页路由缓存问题**:若存在组件实例复用导致分类数据无法更新的情况,可采用两种办法。一是给 `router-view` 添加 `key` 属性,破坏缓存,让组件实例不复用,强制销毁重建;二是使用 `onBeforeRouteUpdate` 钩子函数,做精确更新,即监听路由变化,变化之后执行数据更新操作 [^3]。 - **处理 `keep-alive` 缓存问题**:若在 `vue` 中使用 `keep-alive` 缓存页面后出现不刷新问题,需了解使用 `keep-alive` 时钩子的执行顺序。第一次进入缓存界面是 `beforeRouterEnter -> created -> mounted -> activated -> deactivated`,第二次进入缓存界面是 `beforeRouterEnter -> activated -> deactivated`,可根据此执行顺序进行相应处理 [^4]。 - **配置 `vuepress` 缓存**:若使用的是 `vuepress`,可在配置文件中添加如下配置: ```javascript export default defineUserConfig({ ... head: [ ["meta", {"http-equiv": "Pragma", content: "no-cache"}], ["meta", {"http-equiv": "Cache-Control", content: "no-cache"}], ["meta", {"http-equiv": "Expires", content: "0"}] ], }) ``` 单页面可按 `Frontmatter` 语法要求在相应 `md` 文件设置: ```markdown --- head: - - meta - http-equiv: Pragma content: no-cache - - meta - http-equiv: Cache-Control content: no-cache - - meta - http-equiv: Expires content: 0 --- ``` 这样可解决浏览器加载缓存,总是显示旧页面,无法自动刷新数据的问题 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值