有没有办法检查页面是不是从浏览器缓存中加载?

Posted

技术标签:

【中文标题】有没有办法检查页面是不是从浏览器缓存中加载?【英文标题】:Is there a way to check if the page was loaded from browser cache?有没有办法检查页面是否从浏览器缓存中加载? 【发布时间】:2016-09-22 08:39:56 【问题描述】:

问题源于以下问题。我在我的 android 设备上使用 TiddlyWiki (Classic) SPA,通常将它与 FireFox 及其 TiddlyFox 扩展一起使用以进行保存。由于某些原因,我希望能够使用其他浏览器使用(并保存)我的 TW,因此我正在使用 php 后端(我的 MicroTiddlyServer 的分支)对其进行测试,但它的代码在这里并不重要,我相信,+this PHP 服务器)。

在我的测试中,我注意到虽然保存工作正常,但有时(至少当 PHP 服务器由于这种看起来不可配置的丑陋 Android“优化”而从内存中卸载时)从缓存中加载 TW 并且因为它是在之前最新保存的,而不是之后加载的。

所以,我想要检测页面是以普通方式加载还是从浏览器缓存加载的。是否可以通过 javascript 进行检查?

作为更糟糕的选择,我可以通过 MTS 注入时间戳并在加载时在 TW 中检查它,但我想避免这种复杂性(这涉及前端和后端并添加更多 TW 文件操作) .

【问题讨论】:

看起来重复了,你检查过***.com/questions/9870332/…和***.com/questions/260043/… (我最终为 PHP 部分添加了适当的标头,以便始终在没有缓存的情况下提供页面) 【参考方案1】:

如果您在 chrome 中使用远程调试器,您可以查看网络请求并确定您的项目是否已缓存。 Firefox 似乎也有一个远程调试器。

【讨论】:

不幸的是,我正在寻找一种通过 JavaScript 执行此操作的方法(以便我可以通知用户),最好不要从后端进行任何额外操作(我正在学习这是否可能)

以上是关于有没有办法检查页面是不是从浏览器缓存中加载?的主要内容,如果未能解决你的问题,请参考以下文章

当客户端通过点击后退按钮进入页面时,如何使其加载新副本而不是缓存副本?

在浏览器中加载每个php页面时如何清除缓存?

浏览器后退按钮显示缓存中的页面?

如何检查资源是不是被浏览器从 Javascript 缓存?

如何强制浏览器刷新网页的缓存版本

Android WebView资源文件,如js和css文件缓存