逐个$ .ajaxSetup调用

时间:2012-11-30 19:41:07

标签: jquery ajax caching

我在我的脚本中进行了几次$.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来获取我想要缓存数据的函数,并将global属性设置为false,但它仍然不会缓存。

1 个答案:

答案 0 :(得分:0)

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