0

$.post在我的脚本中做了几个调用,我想用它$.ajaxSetup来处理缓存控制。

function function1() 
$.ajaxSetup({
    type: 'POST',
    headers: { "cache-control": "no-cache", "pragma-cache": "no-cache" }
});
$.post('getLists.php', {user: authUser, token: authToken}, function(data){
    $('nav a[class!=btnNewList]').remove();
    $.each(data.objects, function(index, element){
        $('nav').append('<a href="#" data-list-id="'+element.id+'">'+element.title+'</a>');
    });
    $('nav').children('a:first-child').next('a').addClass('selected');

    getClipsForList($('nav').children('a:first-child').next('a').attr('data-list-id'));
}, 'json');


function function2(){
$.ajaxSetup({
    type: 'POST',
    headers: { "cache-control": "public", "pragma-cache": "public" }
});
$.post('getClips.php', {user: authUser, token: authToken}, function(data){
    spinner.stop();
    $.each(data.objects, function(index, element){
        if(element.list == '/api/lists/'+id+'/'){
            $('#clips ul').append('<li data-url="'+element.url+'">'+truncate(element.title, 100)+'</li>');
        }
    });
},'json');
}

我正在构建一个移动网络应用程序,我注意到它正在缓存我的 JSON 响应,所以我做了一些研究并找到了$.ajaxSetup解决方案。它工作得很好,但现在看来,无论我将缓存控件属性设置为什么,它现在总是在缓存。我只想缓存某些 $.post 调用。有什么办法可以做到这一点?

我已经尝试使用$.ajax而不是$.post我想要缓存数据的函数并将全局属性设置为 false,但它仍然不会缓存。

4

1 回答 1

0

通过简单地为每个调用使用 $.ajax 并在每个调用的基础上明确设置标头,而不是尝试使用 $.post 的全局设置来解决此问题。

于 2012-11-30T20:04:21.630 回答