在我的页面的一部分与Php“无缓存”的方法?

时间:2012-09-22 04:19:30

标签: php forms browser-cache

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

我现在使用的代码是

       <?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 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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");
?>

答案 3 :(得分: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缓冲缓存其余部分。