Ich verwende getJSON
, um die Ergebnisse von der Serverseite abzurufen, habe aber Probleme mit dem Browser-Cache. Ich möchte, dass der Cache falsch ist. Ich habe versucht, dies kurz vor meinem getJSON
Anruf zu verwenden.
$.ajaxSetup({
cache: false
})
Aber ich bekomme nicht die erwarteten Ergebnisse. Es zeigt immer noch die alten Ergebnisse.
Ich habe auch einige andere Lösungen wie die Verwendung identifiziert, .ajax
aber ich möchte das wirklich nicht verwenden.
jquery
jquery-ui
getjson
browser-cache
Abhinav
quelle
quelle
Antworten:
Ihr Code benötigt nur einen Auslöser, damit er aktiviert wird.
Auf diese Weise können Sie den Cache in allen zukünftigen Ajax deaktivieren
$(document).ready(function() { $.ajaxSetup({ cache: false }); });
Ich hoffe es hilft :)
quelle
Sie können entweder Folgendes verwenden, um den Cache global zu deaktivieren:
$(document).ready(function() { $.ajaxSetup({ cache: false }); });
oder dass, anstatt
$.getJSON
den Cache nur für eine solche Anfrage zu deaktivieren:$.ajax({ cache: false, url: "/path/to.json", dataType: "json", success: function(data) { ... } });
quelle
Die Antworten von Semente und Bonesnatch sind korrekt, aber wenn Sie $ .getJSON und anderswo verwenden möchten, nutzen Sie das Caching (Sie möchten den Cache nicht für alle Aufrufe auf false setzen), sondern möchten den Cache nur für a sprengen Mit einem einzigen Aufruf können Sie einen Zeitstempel in die Dateneigenschaft $ .getJSON () einfügen. Durch Hinzufügen eines eindeutigen Werts zur Abfragezeichenfolge der Anforderung ist die Anforderung immer eindeutig und wird nicht vom Browser zwischengespeichert. Sie erhalten immer die neuesten Daten.
Lange Version:
var ts = new Date().getTime(); var data = {_: ts}; var url = '/some/path.json'; $.getJSON(url, data);
Alles in einer Version:
$.getJSON('/some/path', {_: new Date().getTime()});
Beides führt zu folgender Anfrage:
/some/path.json?_=1439315011130
Dabei ist die Nummer am Ende der Zeitstempel für den Moment, in dem der Code aufgerufen wird, und ist daher immer eindeutig.
quelle