我的网站页面上有一个表单。我有一个表格,提交表单中的回声,我想不缓存,因为当你输入表单时,缓存版本显示,而不是更新。有没有更好的方法来不缓存页面而不是元标记?
我现在使用的代码是
<?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>';
?>
答案 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
?>
答案 1 :(得分:1)
它更复杂,但您可以将“非缓存”数据放在iframe
中,并将iframe嵌入主文档中。
但是,除非您的主页非常大,否则我怀疑只是缓存部分页面是值得的。通常,如果您的css
,javascript
和images
都是外部的,那么它们应该正常缓存并构成您的大部分代码。
答案 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
缓冲缓存其余部分。