Как установить cache false для getJSON в JQuery?
Я использую getJSON для получения результатов со стороны сервера, но сталкиваюсь с проблемами кэша браузера. Я хочу, чтобы Кэш был ложным. Я попытался с помощью этот раз перед моим помощью метода getjson вызов.
$.ajaxSetup({
cache: false
})
но я не получаю ожидаемых результатов. Он все еще показывает старые результаты.
Любая помощь будет оценена по достоинству.
Я также определил некоторые другие решения, такие как использование ."Аякс", но я действительно не хочу использовать.
3 ответов:
ваш код просто нуждается в триггере для его включения.
Это позволит Вам отключить кэш во всех будущих 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 для всех вызовов), но вы хотите разбить кэш только для одного вызова, вы можете ввести метку времени в свойство данных $.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где число в конце является меткой времени на момент вызова кода и поэтому всегда будет уникальным.
Comments