Ответ 1
Для вашего кода нужен только триггер для его включения.
Это позволит вам отключить кеш во всех будущих ajax
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
Надеюсь, это поможет:)
Я использую getJSON
для получения результатов со стороны сервера, но сталкиваюсь с проблемами кэша браузера. Я хочу, чтобы кеш был ложным. Я пытался использовать это как раз перед моим вызовом 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 и в других местах, воспользуйтесь его кешированием (вы не хотите, чтобы кеш был ложным для всех вызовов), но вы хотите сбросить кеш только для одного вызова вы можете ввести временную метку в свойство данных $.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
где число в конце - это метка времени на момент вызова кода и поэтому всегда будет уникальной.