我在我的脚本中进行了几次$.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,但它仍然不会缓存。
答案 0 :(得分:0)
通过简单地为每次调用使用$ .ajax并在每次调用的基础上明确设置标头,而不是尝试使用$ .post的全局设置来解决这个问题。