无法使用jQuery.Get()方法刷新

时间:2011-09-14 11:05:48

标签: jquery ajax get refresh

我正在使用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");
    });

}

非常感谢你。 迪伦

3 个答案:

答案 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,所以你跳过一步,得到正确的结果。