Как установить cache false для getJSON в JQuery?



Я использую getJSON для получения результатов со стороны сервера, но сталкиваюсь с проблемами кэша браузера. Я хочу, чтобы Кэш был ложным. Я попытался с помощью этот раз перед моим помощью метода getjson вызов.



 $.ajaxSetup({
cache: false
})


но я не получаю ожидаемых результатов. Он все еще показывает старые результаты.
Любая помощь будет оценена по достоинству.



Я также определил некоторые другие решения, такие как использование ."Аякс", но я действительно не хочу использовать.

713   3  

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

    Ничего не найдено.