$ .getJSON没有提取更新信息

时间:2014-07-23 04:12:30

标签: javascript php jquery ajax json

我正在建立一个网站,我拉动并推送包含信息的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是否被缓存?在成功执行时重新加载页面不是一种选择。

由于

1 个答案:

答案 0 :(得分:0)

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

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