根据this API文档,这是我发现的描述内存缓存的唯一来源:
Chrome使用两个缓存 - 磁盘缓存和内存非常快 缓存。内存缓存的生命周期附加到生命周期 渲染过程,大致对应一个标签。请求 来自内存缓存的回答对Web请求是不可见的 API。如果请求处理程序更改其行为(例如, 根据请求被阻止的行为),一个简单的页面 刷新可能不会尊重这种改变的行为。确保 行为改变通过,调用handlerBehaviorChanged()进行刷新 内存缓存。但是不要经常这样做;刷新缓存是一个 非常昂贵的操作。你不需要打电话 在注册或取消注册事件后处理handlerBehaviorChanged() 监听器。
我需要更好地了解内存缓存。具体来说,我需要Chrome每次访问网站时都会生成完整的webRequest /资源瀑布,包括刷新页面。显然,如果它使用内存缓存,则不可能是真的。
创建新标签时,内存缓存是否为新选项卡的清晰?
“非常昂贵的操作”在多大程度上意味着什么?
如果每次在同一个标签页中重新加载页面时都调用handlerBehaviorChanged(),那么这样可以保证完整的瀑布吗?在这种情况下,10分钟内限制20次似乎相当低。
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
在你的情况下,我认为你的问题是长期缓存而不是内存缓存。在资源瀑布中,可以将多个请求标记为缓存。如果你愿意,有各种方式可以避免:
请记住仅将这些规则应用于您真正需要的资源。否则,您的网络服务器将因重要请求而过载。
正如文档中所述:内存缓存不适用于不同的页面渲染,即使对于相同的URL和同一选项卡(内存缓存附加到渲染过程的生命周期),所以我认为这不适用于你的情况。每次显示页面时渲染周期结束,如果再次渲染,则开始不同的渲染周期。例如:第一次加载图像时会出现在瀑布中,但不会出现在同一页面上的后续请求。