2016-04-23 9 views
0

私はサーバディレクトリにdata.jsonを持っています。 w3schoolの次のコードを使用して、ブラウザにデータを表示しています。 W3school Snippet LinkJavascriptはブラウザのドキュメントを更新しません

<button type="button" onclick="loadDoc()">Change Content</button> 
<script> 
function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     document.getElementById("demo").innerHTML = xhttp.responseText; 

    } 
    }; 
    xhttp.open("GET", "/static/data.json", true); 
    xhttp.send(); 
} 
</script> 
</html> 

私はボタンをクリックすると、私は私のWebページにdata.jsonを見ることができています。しかし、data.jsonを変更してもう一度ボタンをクリックすると(ページを更新せずに)、更新されたデータはブラウザに表示されません。

ここに何か不足していますか?まあ

+1

File'data.json'がキャッシュに入れられると、あなたはキャッシュバスターを必要としています:cache=falseを渡すだけです。 "/static/data.json?v=1.0" ' – Satpal

+1

同じファイルを何度もロードしています。明らかに同じコンテンツが読み込まれます。 –

+0

@RajaprabhuAravindasamy、_私がdata.jsonを変更してもう一度ボタンをクリックすると_ – Satpal

答えて

0
xhttp.open("GET", "/static/data.json?something=RANDOMGUID", true); 
+1

少しの説明は、問題を理解するのに役立ちます。 – urfusion

+0

解決策を理解すると、問題が明らかになります。 – noideawhattodo

+0

2つの異なる場所からデータを取得するとどうなりますか?例: "/static/data2.json? – SeasonalShot

1

あなたがXMLHttpRequestをを使用しているので、あなたはのような何かを行うことができ、すべてのリクエストは、一種の一意であることを確認する必要があります:あなたはjQueryのAJAX(http://api.jquery.com/jquery.ajax/)を使用していた場合

var uniqueId = (new Date()).getTime() 

xhttp.open("GET", "/static/data.json?debug=" + uniqueId, true); 

を、

$.ajax({ 
    cache: false, 
    //other options... 
}); 
関連する問題