Php 如何在浏览器中停用缓存?

Php 如何在浏览器中停用缓存?,php,caching,Php,Caching,例如,如果您退出Yahoo mail,然后单击“上一步”按钮,它将不会加载最后一页,而是将您重定向到登录页 我必须用我的PHP代码来实现这一点,我使用的是CodeIgniter 一些朋友告诉我禁用缓存,但那将是一件坏事,因为我的系统中有很多图像,每次下载它们都会很糟糕 如何使用PHP实现这一点?使用以下代码禁用页面缓存: 避免在客户端浏览器上缓存的简单方法是配置缓存控制HTTP响应头 然而,我没有一个PHP代码片段来向您展示如何准确地完成它。获取HTTP响应对象并设置值为“no store,

例如,如果您退出Yahoo mail,然后单击“上一步”按钮,它将不会加载最后一页,而是将您重定向到登录页

我必须用我的PHP代码来实现这一点,我使用的是CodeIgniter

一些朋友告诉我禁用缓存,但那将是一件坏事,因为我的系统中有很多图像,每次下载它们都会很糟糕


如何使用PHP实现这一点?

使用以下代码禁用页面缓存:


避免在客户端浏览器上缓存的简单方法是配置缓存控制HTTP响应头

然而,我没有一个PHP代码片段来向您展示如何准确地完成它。获取HTTP响应对象并设置值为“no store,must revalidate”的标题“Cache Control”应该非常简单。

尝试以下方法:

<?php
header("Expires: Fri, 01 Jan 2010 05:00:00 GMT");
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' ); 
?>


禁用PHP页面的缓存,并启用图像缓存或将其放在CDN上。您似乎认为,如果禁用页面缓存,则该页面通过
src
属性引用的所有内容也不会被缓存。但事实并非如此。您仅禁用该特定页面的缓存。脚本、图像和iFrame将分别由浏览器请求,因此具有各自的缓存属性。而“粗糙和仓促”的意思是“无效”?粗糙和仓促的意思是,boss不在乎“这需要一段时间才能做好”,并说“你要等到周五”。我的意思是,我不认为这是一个解决问题的整体优雅的解决方案,但它是有效的,高层接受了妥协。所以,我确实使用了php和javascript。主要是php的限制。但是禁用缓存不是一件坏事?@Gerep:这样,你只禁用页面本身的缓存,而不是图像的缓存。此外,我怀疑您不希望浏览器缓存机密信息?每次用户进入该页面时,它都会重新加载您的图像,这不是一件好事。@Marcel是的,我必须处理机密信息……但由于它不会只缓存页面,这是一个临时解决方案……非常感谢=)
<?php
header("Expires: Fri, 01 Jan 2010 05:00:00 GMT");
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' ); 
?>