根据条件强制刷新

时间:2015-06-28 15:48:09

标签: javascript php jquery caching

我有一个网站,其中有2个州:未发布和已发布。

在发布状态下,图像从我的CDN提供,缓存设置为一个月。一旦发布,不允许对文件进行任何更改,因此我从不担心它。

但是,当处于未发布状态时,我想强制每次查看页面时刷新页面。用户进行更新,预览其内容以查看已刷新的新文件以查看最新更新。

如何根据页面是处于已发布还是未发布状态强制进行硬刷新?

2 个答案:

答案 0 :(得分:2)

使用与图像缓存类似的想法 - Disable cache for some images,您可以使用

执行此操作

(1)通过向您的网页添加随机生成的查询字符串,即$ bash --version | head -1 GNU bash, version 4.2.25(1)-release (i686-pc-linux-gnu) $ foo() { echo "One: $1 Two: $2"; } $ foo $(echo a b) One: a Two: b - https://stackoverflow.com/a/729623/689579
也可以使用javascript - https://stackoverflow.com/a/6116854/689579

完成

(2)使用HTTP标头(在php中)

?version=<?php echo time();?>

https://stackoverflow.com/a/728685/689579

(3)使用元HTTP标头

header("Pragma-directive: no-cache");
header("Cache-directive: no-cache");
header("Cache-control: no-cache");
header("Pragma: no-cache");
header("Expires: 0");

https://stackoverflow.com/a/14031623/689579

答案 1 :(得分:0)

我不知道我是否正在寻找你正在寻找的东西,但也许是这样的?

$state = "unpublished";

function updatePage($state)
{
   if($state == "unpublished")
   {
   $page = $_SERVER['PHP_SELF'];
   header("Refresh: $sec; url=$page");
   }
}

每当完成任何更新时都会调用此函数。