2014-07-23 31 views
0

我正在建立一個網站,我拉和推包含信息的json文件。我知道我應該爲了速度而使用數據庫,但是我還沒有這方面的知識。無論如何,每一秒,頁面會拉新的JSON文件與JQuery.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是否被緩存?重新加載成功執行頁面不是一種選擇。

謝謝

+0

您是否嘗試禁用緩存:'$ .ajaxSetup({cache:false});'' –

回答

0

默認情況下getJSON緩存在jQuery中。你真的應該在服務器端設置沒有緩存標題和/或沒有輔助方法的情況下進行Ajax調用。

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