有人可以解释Google Chrome内存缓存吗?

时间:2016-02-19 20:26:17

标签: google-chrome google-chrome-extension

根据this API文档,这是我发现的描述内存缓存的唯一来源:

  

Chrome使用两个缓存 - 磁盘缓存和内存非常快   缓存。内存缓存的生命周期附加到生命周期   渲染过程,大致对应一个标签。请求   来自内存缓存的回答对Web请求是不可见的   API。如果请求处理程序更改其行为(例如,   根据请求被阻止的行为),一个简单的页面   刷新可能不会尊重这种改变的行为。确保   行为改变通过,调用handlerBehaviorChanged()进行刷新   内存缓存。但是不要经常这样做;刷新缓存是一个   非常昂贵的操作。你不需要打电话   在注册或取消注册事件后处理handlerBehaviorChanged()   监听器。

我需要更好地了解内存缓存。具体来说,我需要Chrome每次访问网站时都会生成完整的webRequest /资源瀑布,包括刷新页面。显然,如果它使用内存缓存,则不可能是真的。

创建新标签时,内存缓存是否为新选项卡的清晰?

“非常昂贵的操作”在多大程度上意味着什么?

如果每次在同一个标​​签页中重新加载页面时都调用handlerBehaviorChanged(),那么这样可以保证完整的瀑布吗?在这种情况下,10分钟内限制20次似乎相当低。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

在你的情况下,我认为你的问题是长期缓存而不是内存缓存。在资源瀑布中,可以将多个请求标记为缓存。如果你愿意,有各种方式可以避免:

请记住仅将这些规则应用于您真正需要的资源。否则,您的网络服务器将因重要请求而过载。

正如文档中所述:内存缓存不适用于不同的页面渲染,即使对于相同的URL和同一选项卡(内存缓存附加到渲染过程的生命周期),所以我认为这不适用于你的情况。每次显示页面时渲染周期结束,如果再次渲染,则开始不同的渲染周期。例如:第一次加载图像时会出现在瀑布中,但不会出现在同一页面上的后续请求。