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

Dan*_*ang 25 google-chrome google-chrome-extension

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

Chrome使用两个缓存 - 磁盘缓存和非常快速的内存缓存.内存高速缓存的生命周期附加到呈现过程的生命周期,该过程大致对应于选项卡.从内存缓存中回答的请求对Web请求API是不可见的.如果请求处理程序更改其行为(例如,阻止请求的行为),则简单页面刷新可能不会考虑此更改的行为.要确保行为更改通过,请调用handlerBehaviorChanged()以刷新内存缓存.但是不要经常这样做; 刷新缓存是一项非常昂贵的操作.注册或取消注册事件侦听器后,无需调用handlerBehaviorChanged().

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

当我创建新选项卡时,内存缓存是否为新选项卡的清单?

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

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

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

use*_*663 1

就您而言,我认为您的问题在于长期缓存而不是内存缓存。在资源瀑布中,多个请求可以标记为已缓存。如果您愿意,可以通过多种方式来避免这种情况:

  • 按 CTRL+F5,而不是正常重新加载 (F5)。这将重新加载所有资源,我通常按 CTRL+F5 几次,尽管一次就足够了。
  • 如果您需要每次任何用户访问您的页面时都从服务器重新加载一些特定资源,那么您可以使用以下一些技术:

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

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