Javascript $.getJSON未提取更新的信息
我正在构建一个网站,在这里我可以拉和推包含信息的json文件。我知道为了提高速度我应该使用数据库,但我还不知道该怎么做。无论如何,页面每秒都会通过JQuery.getJSON调用提取一个新的JSON文件,并将其附加到一个元素,如下所示:Javascript $.getJSON未提取更新的信息,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我正在构建一个网站,在这里我可以拉和推包含信息的json文件。我知道为了提高速度我应该使用数据库,但我还不知道该怎么做。无论如何,页面每秒都会通过JQuery.getJSON调用提取一个新的JSON文件,并将其附加到一个元素,如下所示: function update(){ $.getJSON(path, function(data){ $("#entryContainer").empty().append(data.entry); }); window
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吗?在成功执行时重新加载页面不是一个选项
谢谢默认情况下,jQuery中的getJSON缓存。您确实应该在服务器端不设置缓存头和/或在没有helper方法的情况下进行Ajax调用
$.ajax({
dataType: "json",
url: path,
cache: false, //do not cache
success: function(data){
$("#entryContainer").empty().append(data.entry);
}
});
您是否尝试过禁用缓存:$.ajaxSetup{cache:false};