如何通过Ajax修改页面时使缓存无效?

时间:2009-10-26 19:19:36

标签: jquery browser-cache

我有一个页面,其中包含一些可编辑的功能,这些功能在编辑时通过Ajax进行更新。有一些值存储在cookie中,以便在加载页面时加载它们。如果用户进行了更改,然后转到另一个页面并单击后退按钮以返回,则从缓存加载原始页面而不使用新值。如果用户刷新页面,则会从cookie重新加载更改并显示正确的值。在动态修改页面时,我可以使缓存无效吗?我希望能够利用浏览器缓存,所以如果我能提供帮助,我不想让页面始终使浏览器缓存无效。任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:1)

您可以首先通过Ajax加载数据。

 $(document).ready(function(){
     $.get("your_ajax_url");
 });

然后,当您点击后退按钮时,将重复执行ajax调用,并在服务器端通过正确设置的缓存或Etag标头发送http响应。

答案 1 :(得分:0)

您需要在HTTP响应中设置缓存标头。

根据您的技术,您可以在网络服务器(例如,基于相关网址)或代码中执行此操作(例如,使用框架或某些API调用设置标头)。

具体做法是:

no-cache
expires

你想要的那些。

答案 2 :(得分:0)

你可以这样写

$.ajax(
    {
        url: 'Serverpage name'
        cache: false,
        type: 'POST',
        success: function(msg)
        {
        });
    });

这里设置cache:false,不会设置任何缓存。