在获得正确结果之前需要调用PHP两次

时间:2016-02-23 15:17:59

标签: php jquery

我使用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,然后刷新。

1 个答案:

答案 0 :(得分:1)

听起来新服务器的配置允许它缓存先前未缓存的请求。检查您的请求&#39;状态代码;他们可能会展示304 Not modified。一个可能相关的常见解决方案是确定一个多余的参数,该参数始终设置为当前时间,旨在强制服务器响应当前资源,绕过缓存。