代码之家  ›  专栏  ›  技术社区  ›  ZA.

如何用PHP清除浏览器缓存?

  •  45
  • ZA.  · 技术社区  · 17 年前

    如何用PHP清除浏览器缓存?

    3 回复  |  直到 8 年前
        1
  •  49
  •   ZA.    17 年前
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: application/xml; charset=utf-8");
    
        2
  •  32
  •   robert    11 年前

    您可以通过设置以下标题来删除浏览器缓存:

    <?php
    header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    ?>
    
        3
  •  0
  •   Marcelo Agimóvel    8 年前

    它连接了您需要版本化的内容,所以当发生某些更改时,浏览器将捕获一些新内容,用户不需要清除浏览器的缓存。

    你可以通过子文件夹来完成 (example /css/v1/style.css) 或通过文件名 (example: css/style_v1.css) 或者甚至通过为您的网站设置不同的文件夹,例如:

    www.mywebsite.com/site1
    
    www.mywebsite.com/site2
    
    www.mywebsite.com/site3
    

    并使用.htaccess或甚至更改httpd.conf重定向到当前应用程序。

    如果是关于 图像或 :

        <?$time = date("H:i:s");?>
        <img src="myfile.jpg?time=<?$time;?>">
    

    当你不想缓存的时候,你可以在零件上花费$time。所以它总是会拉一个新的图像。版本化是一种更好的方法,否则它会使服务器过载。记住,浏览器的缓存不仅对用户体验有好处,而且对服务器也有好处。