美元.getJSON没有提取更新的信息

$.getJSON is not pulling updated information

本文关键字:更新 信息 提取 getJSON 美元      更新时间:2023-09-26

我正在建立一个网站,我拉和推包含信息的json文件。我知道为了提高速度,我应该使用数据库,但我还不具备这样做的知识。无论如何,页面每秒钟都会用JQuery拉出一个新的JSON文件。调用getJSON并将其附加到元素中,如下所示:

function update(){
    $.getJSON(path, function(data){
        $("#entryContainer").empty().append(data.entry); 
    });
    window.setTimeout(update, 1000);
}

我使用ajax调用PHP脚本,以相同的路径重写旧的json。PHP正确执行:

<?php
    $data = $_POST['data'];
    $path = $_POST['path'];
    $file = fopen($path, 'w+');
    fwrite($file, $data);
    fclose($file);
?>

大多数情况下,这种设置工作得很好。虽然我第一次尝试推送一个更新到json, $。getJSON实际上并不提取更新的文件。刷新页面后,将显示更新内容和$。getJSON实际上会响应。

为什么会发生这种情况?json被缓存了吗?不能在成功执行后重新加载页面。

谢谢

默认getJSON缓存在jQuery中。您确实不应该在服务器端设置缓存头和/或在不使用helper方法的情况下进行Ajax调用。

$.ajax({
    dataType: "json",
    url: path,
    cache: false,  //do not cache
    success: function(data){
        $("#entryContainer").empty().append(data.entry); 
    }
});