Debugging 如何避免浏览器刷新时的缓存重新验证?

Debugging 如何避免浏览器刷新时的缓存重新验证?,debugging,firefox,caching,google-chrome,browser,Debugging,Firefox,Caching,Google Chrome,Browser,有时,在完全缓存的情况下测量站点的性能是很有用的。但是浏览器使得这一点很难测试,因为在每次手动页面刷新时,它都会重新验证所有项目,这会导致对Web服务器上每个资源的请求。有效的cacheitems将以HTTP 304响应,无效的cacheitems将以200 OK响应。因此,对于这个特定的用例,由于Web服务器的延迟,您最终会出现错误的计时 一种解决方案是打开一个新选项卡,然后输入站点的url,这将导致我的预期行为:缓存的项目从磁盘提供。一旦点击“刷新”,项目将再次重新验证 这个工作流(打开选项

有时,在完全缓存的情况下测量站点的性能是很有用的。但是浏览器使得这一点很难测试,因为在每次手动页面刷新时,它都会重新验证所有项目,这会导致对Web服务器上每个资源的请求。有效的cacheitems将以HTTP 304响应,无效的cacheitems将以200 OK响应。因此,对于这个特定的用例,由于Web服务器的延迟,您最终会出现错误的计时

一种解决方案是打开一个新选项卡,然后输入站点的url,这将导致我的预期行为:缓存的项目从磁盘提供。一旦点击“刷新”,项目将再次重新验证


这个工作流(打开选项卡、打开选项卡等等)有点糟糕,所以我想问一下,是否有人知道更好的方法来实现这一点。在Firefox中,只需关注url栏(Windows和Linux上的Ctrl-L,Mac上的Cmd-L)并点击回车键即可。这被视为url的正常顶级加载,而不是重新加载


不幸的是,其他浏览器处理这类事情的方式不同。处理跨浏览器问题的最简单方法可能是使用一个小的工具页面,加载您要在iframe中重新加载的内容,并使用一个按钮设置
subFrameWindow.location.href=subFrameWindow.location.href
,以触发新的加载

只需添加书签并在“url”字段中填写以下内容:
javascript:location.href=location.href

无论何时单击“重新加载”按钮,浏览器都可以重新验证给定url的所有资源,因为这最符合用户这样做的意图——换句话说,“重新加载”将导致显示“新鲜”数据,而不是简单地为浏览器缓存中已有的数据提供服务。除此之外,所有主流浏览器都实现了一种实际获取每个资源的方法,即绕过http头中的任何指令来缓存它(例如“304未修改”状态),使用SHIFT/CTRL+R/F5等快捷方式