有人可以解释Google Chrome内存中缓存吗?
据this API文档,这是我发现的唯一来源,它描述了在内存中缓存:有人可以解释Google Chrome内存中缓存吗?
的Chrome使用两个高速缓存 - 磁盘上的高速缓存和一个非常快的内存 缓存。内存中高速缓存的生存期与渲染进程的生命周期 相关,该进程大致对应于选项卡。 从内存中缓存中得到回复的请求对于Web请求 API不可见。如果请求处理程序更改其行为(例如,阻止请求所依据的行为),则简单页面刷新可能不会遵守此已更改的行为。为确保 行为更改通过,请调用handlerBehaviorChanged()以刷新内存中的缓存 。但不要经常这样做;刷新缓存是一个非常昂贵的操作。在注册或取消注册事件 侦听器之后,您无需调用 handlerBehaviorChanged()。
我需要更好地理解内存中的缓存。具体来说,我需要Chrome每次访问网站时生成完整的WebRequest /资源瀑布,包括刷新页面。显然,如果它使用内存中缓存,则这不是真的。
当我创建一个新选项卡时,内存缓存对于新选项卡是干净的吗?
“非常昂贵的手术”是什么意思?
如果我每次在同一个选项卡中重新加载一个页面时调用handlerBehaviorChanged(),是否可以保证完整的瀑布?在这种情况下,超过10分钟20次的限制似乎相当低。
任何帮助,高度赞赏,谢谢!
在你的情况,我认为你的问题是与长期缓存,而不是内存中的缓存。在资源瀑布中,几个请求可以被标记为缓存。有各种方式可以避免,如果你想:
- 而不是正常重新加载(F5)按CTRL + F5。这将重新加载所有的资源,我通常按CTRL + F5几次,但一次必须足够。
- 如果你需要你的页面重新加载某些特定的资源,从服务器的任何用户每次访问你,那么你可以使用一些这方面的技术:
- 最优雅:配置您的服务器在HTTP头返回高速缓存策略https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Cache-Control
- 添加到您的请求每次更改get参数不同,例如使用毫秒。例如:https://www.gravatar.com/avatar/c6252fcbc3ce5fc144c11dedd75bce29?_=1501147200802其中每个重新加载1501147200802都不相同。这会混淆缓存,因此每次请求时都会从服务器加载资源。
切记只为您真正需要的资源应用这些规则。否则,你的网络服务器将被超负荷的请求。
如所提到的文献中指出:在内存中缓存并不适用于不同的页面渲染即使对于相同的URL和在同一标签(内存高速缓存被附接到一个呈现进程的寿命),所以我认为这不适用于你的情况。每次页面显示时渲染周期结束,如果再次渲染,则渲染周期结束。例如:第一次加载图像时出现在瀑布中,但是在同一页面上没有以后的请求。
[引用需要]为第一个索赔 – Xan
我是指在问题 – user1039663
提到的相同的文件啊对不起,没有注意到。 – Xan