亲爱的程序员们,您好。
我有问题。我正在尝试使用服务器端语言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或使用类似方法时,才强制客户端获取新信息并强制客户端删除缓存。
所以我在想!那里有没有人,可能比我更有想象力,想在这门课程中帮助我?
我愿意就如何解决我的这个问题提出建议。
感谢您阅读本文。 (当然还有尝试帮助)