getJSON
サーバー側から結果を取得するために使用していますが、ブラウザのキャッシュの問題に直面しています。キャッシュをfalseにしたい。getJSON
電話の直前に使ってみました。
$.ajaxSetup({
cache: false
})
しかし、期待した結果が得られていません。それはまだ古い結果を示しています。
を使用するなど、他の解決策もいくつか特定しまし.ajax
たが、実際には使用したくありません。
getJSON
サーバー側から結果を取得するために使用していますが、ブラウザのキャッシュの問題に直面しています。キャッシュをfalseにしたい。getJSON
電話の直前に使ってみました。
$.ajaxSetup({
cache: false
})
しかし、期待した結果が得られていません。それはまだ古い結果を示しています。
を使用するなど、他の解決策もいくつか特定しまし.ajax
たが、実際には使用したくありません。
コードを有効にするには、トリガーが必要です。
これにより、将来のすべてのajaxでキャッシュを無効にできるようになります
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
それが役に立てば幸い :)
次のいずれかを使用できます。これにより、キャッシュがグローバルに無効になります。
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
または、その代わりに$.getJSON
、そのような要求のためだけにキャッシュを無効にします。
$.ajax({
cache: false,
url: "/path/to.json",
dataType: "json",
success: function(data) {
...
}
});
sementeとbonesnatchの答えは正しいですが、$。getJSONなどを使用する場合は、キャッシュを利用します(すべての呼び出しでキャッシュをfalseに設定したくない場合)が、キャッシュを無効にする場合は、 1回の呼び出しで、$。getJSON()のデータプロパティにタイムスタンプを挿入できます。リクエストのクエリ文字列に一意の値を追加することで、リクエストは常に一意になり、ブラウザによってキャッシュされなくなります。常に最新のデータを取得できます。
ロングバージョン:
var ts = new Date().getTime();
var data = {_: ts};
var url = '/some/path.json';
$.getJSON(url, data);
オールインワンバージョン:
$.getJSON('/some/path', {_: new Date().getTime()});
どちらも次のリクエストになります。
/some/path.json?_=1439315011130
ここで、最後の数字は、コードが呼び出された瞬間のタイムスタンプであるため、常に一意になります。