4

我的网站页面上有一个表格。我有一个从提交表单回显的表,我不想缓存它,因为当您输入表单时,缓存的版本会显示并且不会更新。有没有更好的方法来不缓存页面而不是元标记?

我现在使用的代码是

       <?php
       $query='select * from article order by `article`.`time` DESC LIMIT 10';
       $result=mysql_query($query); 
       echo '<table class="mytable" width="1000px" border="0">';
       while($row = mysql_fetch_array($result))
       {
    echo "<td><a href='".$row['url']."'>".$row['title']."</a> - ".$row['name']."</td><td>".$row['class']."</td></tr>";
}
echo '<table>';
       ?>
4

4 回答 4

2
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

http://php.net/manual/en/function.header.php

于 2012-09-22T04:23:22.210 回答
1

它更复杂,但您可以将“非缓存”数据放入iframe并在主文档中嵌入 iframe。

但是,除非您的主页非常大,否则我怀疑仅仅缓存页面的一部分是否值得。通常,如果您的css,javascriptimages都是外部的,它们应该被正常缓存并构成您的大部分代码。

于 2012-09-22T04:22:31.697 回答
0

这些 php 标头将阻止您的 php 输出的客户端缓存:

<?php
//no  cache headers 
header("Expires: Mon, 26 Jul 2012 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");
?>
于 2012-09-22T04:22:01.050 回答
0

利用:

header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

并使用缓冲缓存其余部分ob

于 2012-09-22T04:33:11.747 回答