我使用PHP来回显文件中的最后x行,但它正在发回旧数据。如果我直接调用PHP,然后刷新,它会显示正确的数据。 但是,从调用PHP的HTML页面(使用jQuery),它将只加载上次显示的数据,直到我直接调用PHP并再次刷新。
我在另一台服务器上使用过相同的代码而没有任何问题。它似乎只是在这台新服务器上出现问题。
这是PHP代码段
$file = file("thisisarealpath/server_chat.log") or die("No Server Chat Found");
if (count($file) > $MAX_SERVER_LINES) {
for ($i = count($file) - $MAX_SERVER_LINES;$i < count($file); $i++) {
echo "<span id=\"serverMessage\">" . $file[$i] . "</span><br/>";
}
} else {
for ($i = 0;$i < count($file); $i++) {
echo "<span id=\"serverMessage\">" . $file[$i] . "</span><br/>";
}
}
这是jQuery调用它
setInterval(function() {
if (window.refresh) {
$("#serverLog").load("GetLogs.php?logType=server&pass=" + window.pass);
}
}, 3000);
刷新HTML页面无法解决问题。我发现的唯一“修复”是直接点击PHP,然后刷新。
答案 0 :(得分:1)
听起来新服务器的配置允许它缓存先前未缓存的请求。检查您的请求&#39;状态代码;他们可能会展示304 Not modified
。一个可能相关的常见解决方案是确定一个多余的参数,该参数始终设置为当前时间,旨在强制服务器响应当前资源,绕过缓存。