Работает ли jQuery ajaxSetup ({cache: true}) в целом? - PullRequest
9 голосов
/ 04 мая 2010

jQuery 1.4.2 пропускает параметр timestamp GET (для предотвращения кэширования в браузере), если я утверждаю параметр кэша ajax в локальном контексте:

$.ajax({
    url: searcher, 
    data: keys,
    cache: true,
    type: 'GET',
    dataType: 'json',
    success: function(data) {
        // something
    });

Но он включает временную метку, если я перенесу настройку в глобальный контекст:

$.ajaxSetup({cache: true});

Более того, если я разрешу применять настройки по умолчанию, jQuery устанавливает отметку времени , что, похоже, не соответствует руководству.

Вы испытываете то же самое?

Влияет ли заголовок ответа управления HTTP-кэшем с сервера на эту функцию jQuery?

Ответы [ 2 ]

9 голосов
/ 25 октября 2010

Похоже, это работает. Следующие три вызова ajax передают метку времени только в качестве параметра во втором случае. Имя параметра отметки времени не отметка времени , а скорее знак подчеркивания.

    $.ajax({ url: '/?=testDefault',
    data: { 'cache': 'default' }
    });//no timestamp

    $.ajaxSetup({ cache: false });
    $.ajax({ url: '/?=testFalse/',
    data: { 'cache': 'false' }
    });//yes, a timestamp

    $.ajaxSetup({ cache: true });
    $.ajax({ url: '/?=testTrue/',
    data: { 'cache': 'true' }
    }); //no timestamp

Кроме того, вы используете плагин автозаполнения? Это передает параметр timestamp по умолчанию. Вы можете переопределить его, используя опцию extraParams, передав что-то вроде этого.

extaParams: {timestamp:'cache'}
0 голосов
/ 21 мая 2010

Вы можете вручную добавить временную метку в качестве параметра get, это было бы совершенно нормально, не так ли?

function myAjaxFunction()
{
    var tS=new Date().getTime();
    $.ajax({
        url: searcher,
        data: {timestamp:tS},
        cache: true,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            //something here
        }});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...