html页面不允许缓冲,如何防止html5页面缓存?

我将普通的HTML页面转换为具有响应式布局的HMTL5 / CSS3,并且出于安全原因(由安全人员指示),该页面绝不能缓存。

该页面以前使用和来防止该页面被缓存。

用什么替代HTML5?

如何防止html页面在客户端缓存?

我已经花了一个星期的时间来阅读清单文件,但是它们似乎与我想要的完全相反,因为清单文件显式附加会导致将其附加到的页面缓存。

而且,请不要再回过头来看看现在允许使用哪些meta元素的w3c定义-我知道HTML5在meta元素中不包含cache-control或Pragma。

我需要知道它包含哪些内容,以防止页面被缓存。

好吧,您可以使用实际的http标头代替假的html标头。 mnot.net/cache_docs

在代码的开头,您需要使用以下代码:

...

然后使用以下内容创建manifest.appcache:

CACHE MANIFEST

# Cache manifest version 1.0

# no cache

NETWORK:

*

要添加到@ n1ckolas答案中,请查看w3.org/TR/html5/browsers.html#manifests了解详细信息。

谢谢,可以阻止文件缓存的工作,但是现在它在Firefox中弹出一个信息栏,指出:"此网站要求将数据存储在计算机上以供离线使用。"再次与我想发生的事情完全相反。非常烦人,对于我们的新手用户不会太用户友好-我们迎合了不懂Internet的医疗保健专业人员。无论如何要保留清单并抛弃信息栏,或者这只是使用Firefox的方式吗?

我实际上不确定...您可以将其移动到单独的问题中,很高兴看到答案:)

实际上,这不起作用。唯一可行的原因是,该代码示例格式错误。香港专业教育学院因为更新了答案,所以它不再正常工作。由于旧答案缺少冒号,因此浏览器尝试缓存名为CACHE,NETWORK和*的文件。当它尝试下载site.com*时失败,因此它永远无法下载所有内容并认为该应用程序已成功缓存。上面的更正代码无法正常工作的原因是,带有清单的html页面始终默认情况下会被缓存。这就是appcache的工作方式。

一个等效的解决方案是引用一个不存在的清单文件:,但这将在chrome开发人员工具的控制台中显示。

如果您在阅读我的评论之前尝试了上述操作,您会发现现在页面已被很好地缓存,以致刷新按钮不起作用。 (这是应可脱机使用的应用程序的功能。)要使您的页面不被卡住,请清除浏览器缓存。在chrome中,需要清除的是" Cookie以及其他网站和插件数据"。

此功能已从Web标准中删除。尽管某些浏览器可能仍支持它,但是它正在被删除。避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表以指导您做出决定。请注意,此功能可能随时停止起作用。 developer.mozilla.org/zh-CN/docs/Web/HTML/

我一直在同一个问题上苦苦挣扎。至少到目前为止,在Chrome,FF和IE中对我有效的方法是:

1)引用清单文件据我了解,这将缓存此HTML文档中的所有内容,因此需要清单文件来防止这种情况的发生:

2)使用清单文件filename.appcache并具有以下内容,该内容基本上表示:对于所有文件,请不要从缓存中读取,而要从网络服务器中读取:

CACHE MANIFEST

# 2015-09-25 time 20:33 UTC v 1.01

NETWORK:

*

3)需要执行第三步:每次您上传网站的(部分)更新时,还可以通过更改comment(#)行中的日期和时间戳来更改清单文件。为什么?因为如果您不更改清单文件,则将不会读取该清单文件,并且它将默认执行步骤1,从而进行缓存并从缓存中读取。但是,清单文件被更改的事实迫使清单文件再次被读取,从而强制执行其中的"不从缓存中读取而是从网络服务器读取"指令。

我非常不喜欢appcache。它几乎可以很好地工作,但可能是真正的宽容之痛。在进行一些代码重构时,我意识到注销后,我可以浏览回最后一页。当然,刷新浏览器会迫使用户重新登录,但这不是必需的。

在四处寻找并看到选项后,我开始感到有些沮丧。我不想使用appcache。然后,我意识到我的代码在破坏了会话之后将重定向到登录页面,并且有了一个主意,如果我改为重定向到主页怎么办?瞧,页面已加载,会话已检查(当然不存在),用户重定向到登录。问题解决了。

先前的答案可能无法始终如一地用于防止缓存或清除chrome中的现有缓存,但可以解决。

1)要清除chrome中的现有缓存,可能需要在清除chrome中的现有缓存之前,更新网站的所有文件(例如,通过链接到每个页面上的新css文件)以及缓存清单的更新页面的第二次访问(由于呈现页面的方式的"流程":第一次访问页面时,浏览器读取并缓存清单,同时继续从现有缓存中加载。仅当第二次访问,将读取并应用新存储的更新清单。

2),如果上述方法均无济于事,则可以在清单文件本身中包含脚本以检查是否有新清单,如果找到,请重新加载该脚本并使用新清单。这可以解决问题,并解决了我测试过的所有其余情况,这些情况是文件在chrome中被持久地缓存。我在Jason Stimpel的本页上找到了此脚本。

window.addEventListener('load', function (e) {

window.applicationCache.addEventListener('updateready', function (e) {

window.location.reload();

}, false);

}, false);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值