dlr*_*as2 40 google-chrome http-caching google-chrome-devtools
我正在提供旨在由浏览器无限期缓存的静态内容.Chrome正在按预期缓存它,但仍在花时间"下载"它.我使用的是Chrome 46.0.2490.71.
正如您所看到的,内容是从缓存提供的,但内容下载仍需要68毫秒.这导致svg图像在每次页面加载时闪烁,即使文件被缓存.
以下是隐身模式中页面加载的相关时间线信息:
每个事件的"总时间"和"事件时间"字段为零.使用本地提供的文件(但仍然来自缓存)复制此项,"接收数据"事件只能看一次.
一些有趣的注意事项:
有什么可能的原因?
Max*_*xML 13
所以这与Chrome中缓存的工作方式有关.我对Chrome的代码库没有个人经验,但我对它的理论有所了解.(我还在这里找到了对Chrome缓存实现的引用,以获得更好奇:chrome disk cache)
作为参考,这是我在Chrome中加载您的实际Stack Overflow问题的屏幕截图,其中Network面板打开,Network Throttling选项设置为"Offline".请注意,此列表中的每个条目都来自缓存!

您还会注意到Chrome 正在花时间"下载"每个文件.为什么是这样?好吧,Chrome的缓存是一个数据库,该数据库也被压缩以节省空间.从缓存中检索文档时,检索的价格不为零.Chrome必须在缓存数据库中查找该项目,然后将该条目扩展到内存中,以便Chrome可以使用它.我不知道有关网络chrome-dev-tools面板如何显示时间的具体细节,但我猜想从磁盘获取该文件,解压缩它,然后解析并使用结果就是你所看到的反映在"下载时间"中.
我无法评论为什么其他浏览器也没有这种延迟,因为我没有很多经验.可能是他们要么使用更有效的方法从缓存中获取内容(可能),要么可能是他们始终将缓存保留在内存中(不太可能),或者他们正在跳过一些完整性检查Chrome正在制作缓存数据(可能)
| 归档时间: |
|
| 查看次数: |
7140 次 |
| 最近记录: |