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

发布于 2024-12-04 09:51:40 字数 543 浏览 1 评论 0原文

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

}

非常感谢很多。 迪伦

I'm using the AJAX method jQuery.Get() because it's really simple to use.
I use this to load pages into a div. But when I change this page that is being loaded and click Refresh. It won't be updated. The only solution is to exit the browser and reopen it and go to the website again. This is really anoying and I wonder if there is a solution to this.

More info on the method:
http://api.jquery.com/jQuery.get/

Code used:

function pagina_ophalen(pagina){    
    $.get('paginas/' + pagina + '.html', function(data){
    $('#inlaadcontent').css('display','none');
        $('#inlaadcontent').html(data);
    $('#inlaadcontent').fadeIn("slow");
    });

}

Thank you very much.
Dylan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

走过海棠暮 2024-12-11 09:51:40

要使其正常工作,您可以进行的最简单的更改是

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,这正是我上面描述的。

The simplest change you can make to get this working is

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");
          });
}

What's the difference?

Your browser is caching the result of the AJAX request because the URL is the same each time. By adding a query parameter that is variable (?t=xxxxxxx, based on the current timestamp) you make the browser consider each request as a new one and fetch the page again instead of using the cached result.

If you take a look at the jQuery.ajax function (of which get is simply a convenience-targeted subset), you will see that there is a cache option you can set. This does exactly what I described above if set to false.

星星的軌跡 2024-12-11 09:51:40

最简单的方法是使用 http://api.jquery.com/jQuery.ajax/并将缓存设置为 false。

$.get() 无论如何都会调用 $.ajax,因此您将跳过一个步骤并获得正确的结果。

The easiest way is to use http://api.jquery.com/jQuery.ajax/ and set cache to false.

$.get() calls $.ajax anyways, so you are skipping a step, and getting the correct result.

你在我安 2024-12-11 09:51:40

缓存问题。尝试在您的 URL 中添加随机数:

var randomToken = Math.random(); // Or replace if you need
$.get('paginas/' + pagina + '.html' + ? randomToken, function(data) {
    // ...
});

Problem in caching. Try to add random number to your URL:

var randomToken = Math.random(); // Or replace if you need
$.get('paginas/' + pagina + '.html' + ? randomToken, function(data) {
    // ...
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文