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