我正在建立一个网站,我拉动并推送包含信息的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是否被缓存?在成功执行时重新加载页面不是一种选择。
由于
答案 0 :(得分:0)
默认情况下,jQuery中的getJSON缓存。你真的应该在服务器端设置没有缓存头和/或在没有辅助方法的情况下进行Ajax调用。
$.ajax({
dataType: "json",
url: path,
cache: false, //do not cache
success: function(data){
$("#entryContainer").empty().append(data.entry);
}
});