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

时间:2012-06-19 10:50:38

标签: debugging firefox caching google-chrome browser

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

一种解决方案是打开一个新标签,然后输入网站的网址,这会产生我预期的行为:缓存的项目是从磁盘提供的。只要您点击刷新,项目就会重新生效。

这个工作流程(打开标签页,打开标签页等)有点不好,所以我想问一下,如果有人知道更好的方法来实现这一点。也许有一个很好的隐藏的捷径,我错过了迄今为止在互联网上。

2 个答案:

答案 0 :(得分:4)

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

每当点击“重新加载”按钮时,浏览器重新验证给定网址的所有资源确实非常有意义,因为这最符合用户的意图 - 换句话说,预计会有“重新加载”导致显示“新鲜”数据,而不是简单地提供已经存在于浏览器缓存中的数据。除此之外,所有主流浏览器都实现了一种实际获取每个资源的方法,绕过http头中的任何指令来缓存它(例如'304未修改'状态),使用SHIFT / CTRL + R /等快捷方式F5。

答案 1 :(得分:1)

在Firefox中,只需关注网址栏(Windows和Linux上的Ctrl-L,Mac上的Cmd-L)并按Enter键。这被视为url的正常顶层负载,而不是重新加载。

不幸的是,其他浏览器以不同的方式处理这种事情。处理跨浏览器的最简单方法可能是设置一个小的线束页面来加载你想要在iframe中重新加载的东西,并有一个按钮设置subFrameWindow.location.href = subFrameWindow.location.href以触发新的加载......