【问题标题】:$.getJSON is not pulling updated information$.getJSON 没有提取更新的信息
【发布时间】:2014-07-23 04:12:30
【问题描述】:

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

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

我使用对 PHP 脚本的 ajax 调用来覆盖具有相同路径的旧 json。 PHP 正确执行:

<?php
    $data = $_POST['data'];
    $path = $_POST['path'];

    $file = fopen($path, 'w+');
    fwrite($file, $data);
    fclose($file);
?>

大多数情况下,此设置都能完美运行。虽然我第一次尝试将更新推送到 json,但 $.getJSON 实际上并没有拉出更新的文件。刷新页面后,将显示更新,并且 $.getJSON 实际上会响应。

为什么会这样? json被缓存了吗?无法在成功执行时重新加载页面。

谢谢

【问题讨论】:

  • 您是否尝试过禁用缓存:$.ajaxSetup({cache:false});

标签: javascript php jquery ajax json


【解决方案1】:

默认情况下,getJSON 缓存在 jQuery 中。你真的不应该在服务器端设置缓存头和/或在没有辅助方法的情况下进行 Ajax 调用。

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

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 2013-01-03
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多