【问题标题】:how long a browser is caching an ajax response浏览器缓存 ajax 响应的时间
【发布时间】:2017-07-16 00:05:13
【问题描述】:

我试图找出浏览器缓存 ajax 响应的时间。

我可以从 Chrome 中的开发工具网络选项卡中看到资源即将到来 (from disk cache),但无论如何我可以看到它在缓存中保留了多长时间以及何时到期?

被缓存的资源是一个 ajax 获取的 HTML 文件,一个 angularJS 模板。

从测试来看,似乎只缓存了一两个小时,但是如何确定呢?

这个缓存存储在哪里?它是在客户的 PC 上,在他们的 chrome/firefox/browser 应用程序目录中吗?

更新

根据@Andrew Shepherd 的回答,我没有看到缓存控制标头的值。

Accept-Ranges:none
Connection:close
Content-Encoding:gzip
Content-Length:702
Content-Type:text/html
Date:Sat, 25 Feb 2017 01:59:20 GMT
ETag:"eb7-549504ee7ac60-gzip"
Last-Modified:Sat, 25 Feb 2017 00:55:53 GMT
Server:Apache/2.4.6 (CentOS)
Vary:Accept-Encoding

也许这与服务器设置缓存“text/html”的方式有关,它们的默认时间是否设置为缓存text/html 资源?

我可以在图像上看到缓存控制...

Accept-Ranges:none
Age:64
Cache-Control:public, max-age=899
Connection:keep-alive
Content-Language:en-
Content-Length:4120
Content-Type:image/jpeg;charset=UTF-8
Date:Sat, 25 Feb 2017 01:58:16 GMT
Expires:Sat, 25 Feb 2017 02:13:16 GMT
Last-Modified:Fri, 17 Feb 2017 10:00:23 GMT
X-Cache:HIT
X-Cache-Hits:2
X-dmg-elapsed-time:18ms
X-dmg-generated-time:Sat, 25 Feb 2017 01:58:16 GMT
X-dmg-host-address:172.16.0.64
X-dmg-node-name:fbde_node_4

【问题讨论】:

    标签: angularjs ajax caching browser-cache


    【解决方案1】:

    您可以通过以下方式了解缓存的时间长度:

    • 在您的 Chrome 浏览器中,调出 F12 开发者工具
    • 激活“网络”选项卡
    • 选中“禁用缓存”
    • 刷新网页
    • 您现在将看到构建页面时发生的每个 HTTP 请求。点击您感兴趣的一项
    • 激活“标题”标签

    响应标头下,您将看到Cache Control 标头的值。这应该为您提供有关如何缓存此项目的所有详细信息。

    【讨论】:

    • 谢谢,但这对我来说并没有出现,我用更多细节更新了我的问题。还有max-age=120是什么意思,是120分钟吗?
    • 不,这意味着 120 秒。您的浏览器正在向服务器发送一个 ETag 标头,这会导致服务器将其 ETag 与您的 ETag 进行比较。如果 ETag 未更改,则服务器返回 304 Not Modified。
    • @Daniel ETag 引用通常需要多长时间,一旦我更改服务器上的文件似乎需要几个小时。
    • @Holy 你永远不知道。因为电子标签的东西没有有效期。这就是为什么对缓存标头的控制很重要的原因。这个问题仅针对服务器端,与 Angular 无关。如果您在 Angular 应用程序中遇到不良缓存的特定问题,我建议您提出一个反映该问题的新问题。
    猜你喜欢
    • 2013-06-10
    • 2017-06-13
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多