我正在使用AJAX方法jQuery.Get()因为它非常简单易用。 我用它来将页面加载到div中。但是,当我更改正在加载的页面并单击“刷新”时。它不会更新。唯一的解决方案是退出浏览器并重新打开它并再次访问该网站。这真的很烦人,我想知道是否有解决方案。
有关该方法的更多信息: http://api.jquery.com/jQuery.get/
使用的代码:
function pagina_ophalen(pagina){
$.get('paginas/' + pagina + '.html', function(data){
$('#inlaadcontent').css('display','none');
$('#inlaadcontent').html(data);
$('#inlaadcontent').fadeIn("slow");
});
}
非常感谢你。 迪伦
答案 0 :(得分:4)
你可以做的最简单的改变是
function pagina_ophalen(pagina){
$.get('paginas/' + pagina + '.html',
{ t = new Date().getTime() }, // ADD THIS
function(data){
$('#inlaadcontent').css('display','none');
$('#inlaadcontent').html(data);
$('#inlaadcontent').fadeIn("slow");
});
}
有什么区别?
您的浏览器正在缓存AJAX请求的结果,因为每次都是相同的URL。通过添加一个可变的查询参数(?t=xxxxxxx
,基于当前时间戳),您可以使浏览器将每个请求视为一个新请求,并再次获取该页面,而不是使用缓存的结果。
如果你看一下jQuery.ajax
函数(其中get
只是一个以便利为目标的子集),你会看到你可以设置一个cache
选项。如果设置为false
,这就完全符合我的描述。
答案 1 :(得分:0)
缓存问题。尝试在网址中添加随机数:
var randomToken = Math.random(); // Or replace if you need
$.get('paginas/' + pagina + '.html' + ? randomToken, function(data) {
// ...
});
答案 2 :(得分:0)
最简单的方法是使用http://api.jquery.com/jQuery.ajax/并将缓存设置为false。
$。get()无论如何调用$ .ajax,所以你跳过一步,得到正确的结果。