PHP在所有浏览器上禁用缓存

时间:2015-07-12 08:56:37

标签: javascript php google-chrome internet-explorer caching

我想阻止所有浏览器缓存文件script.php

我的文件 script.php 显示一个随机数:

<?php
$response = "document.write('" . rand(0,999999) . "');"; // Show random number
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
header('Content-Type', 'application/javascript');
echo $response;

test.html

<script src="script.php"></script>
<script src="script.php"></script>
<script src="script.php"></script>

当我在Firefox上打开test.html页面时,文件script.php没有被缓存,我得到3个不同的随机数。但是在IE或Chrome上,我得到的数字是浏览器缓存的3倍。为什么Chrome和IE缓存不会加载3次文件?如何防止?

2 个答案:

答案 0 :(得分:0)

您可以在调用脚本时添加缓存buster参数:

<script src="script.php?v=<?php echo mt_rand(1, 9999999) ?>"></script>
<script src="script.php?v=<?php echo mt_rand(1, 9999999) ?>"></script>
<script src="script.php?v=<?php echo mt_rand(1, 9999999) ?>"></script>

享受

答案 1 :(得分:0)

试试这个

<?php
   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");
?>