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

全部回复(2)
P粉990568283

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

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

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

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

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

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

P粉680487967

这是可能的,你可以简单地使用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规范的一部分实现的应用程序缓存,它还需要服务器配置来设置应用程序缓存清单。它没有描述一种通过客户端或服务器端代码清除“传统”浏览器缓存的方法,这几乎是不可能做到的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板