首页 > 社区问答列表 >如何以编程方式清空浏览器缓存?

  如何以编程方式清空浏览器缓存?

我正在寻找一种方法,以编程方式清空浏览器缓存。我这样做是因为应用程序缓存机密数据,我想删除那些当你按下“注销”。这可以通过服务器或JavaScript实现。当然,在国外/公共计算机上使用该软件仍然是不鼓励的,因为有更多的危险,如键盘记录器,你只是无法在软件层面上击败。

P粉419164700
P粉419164700

  • P粉990568283
  • P粉990568283     2023-08-02 11:31:57 2楼

    浏览器不可能让你清除它的缓存。如果可能的话,这将是一个巨大的安全问题。这很容易被滥用——一旦浏览器支持这种“功能”,我就会把它从我的电脑上卸载。

    你能做的就是告诉它不要缓存你的页面,通过发送适当的标题或使用这些元标签:

    <meta http-equiv='cache-control' content='no-cache'>
    <meta http-equiv='expires' content='0'>
    <meta http-equiv='pragma' content='no-cache'>

    您可能还想考虑关闭表单字段上的自动完成,尽管恐怕有一种标准方法可以做到这一点(参见这个问题)。

    无论如何,我想指出的是,如果您正在处理敏感数据,则应该使用SSL。如果您不使用SSL,任何可以访问网络的人都可以嗅探网络流量,并很容易地看到您的用户看到的内容。

    使用SSL还使一些浏览器不使用缓存,除非明确告知。看看这个问题。

    +0 添加回复

  • P粉680487967
  • P粉680487967   已被采纳   2023-08-02 09:30:01 1楼

    这是可能的,你可以简单地使用jQuery替换引用缓存状态的“meta标签”与事件处理程序/按钮,然后刷新,很容易。

    $('.button').click(function() {
        $.ajax({
            url: "",
            context: document.body,
            success: function(s,x){
    
                $('html[manifest=saveappoffline.appcache]').attr('content', '');
                    $(this).html(s);
            }
        }); 
    });

    注意:此解决方案依赖于作为HTML 5规范的一部分实现的应用程序缓存,它还需要服务器配置来设置应用程序缓存清单。它没有描述一种通过客户端或服务器端代码清除“传统”浏览器缓存的方法,这几乎是不可能做到的。

    +0 添加回复