PHP倒计时服务器端缓存

时间:2015-04-29 20:35:10

标签: php caching timestamp server

亲爱的程序员们,您好。

我有问题。我正在尝试使用服务器端语言PHP从我们的数据库中获取当前时间戳和任意时间戳之间的差异,初始化一个客户端JavaScript倒计时器。但是,文件上的缓存使它变得很难。

对于这个演示,这就是我使用过的

<html>
<head>
    <META http-equiv="Pragma" content="no-cache">
</head>

<?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");
    ini_set("display_errors", 1);
    require_once("./config.php");
    require_once("./backend.php");
    if (!isset($_COOKIE["basket_ID"])) {
        setcookie("basket_ID", "testguid", time() + 60 * 60 * 2);
        mysql_query("INSERT INTO basket(basketID, productID, quantity, GUID) VALUES (1, 1, 2, 'testguid')");
        echo "Generated cookie";
    } else {
        $temp = mysql_query("SELECT * FROM basket WHERE GUID = '" . mysql_escape_string($_COOKIE["basket_ID"]) . "'");
        if (mysql_num_rows($temp) > 0) {
            $time = mysql_fetch_assoc($temp)["timestamp"];
            echo "Cookie already exists: " . $_COOKIE["basket_ID"] . "<br>";
            $diff = strtotime("now") - strtotime($time);
            echo "JUST NOW: " . time();
            echo "<br>Now: " . (new DateTime("now"))->getTimestamp() . "<br>Cookie start: " . (new DateTime($time))->getTimestamp();
            echo "<br>Second(s): " . $diff;
            echo "<br>Positive second(s): " . abs($diff);
            echo "<br>Random: " . rand();
        }
    }
?>

</html>

但是当访问者快速刷新页面时,这些数字仍保持不变。仅当您按CTRL + F5或使用类似方法时,才强制客户端获取新信息并强制客户端删除缓存。

所以我在想!那里有没有人,可能比我更有想象力,想在这门课程中帮助我?

我愿意就如何解决我的这个问题提出建议。

感谢您阅读本文。 (当然还有尝试帮助)

0 个答案:

没有答案