为什么刷新[f5]不同,然后从地址栏输入并按Enter键?

时间:2011-04-18 07:42:38

标签: performance firefox caching

我已经对我的应用程序进行了基准测试,我发现了一件让我感到惊讶的事情,我想要澄清为什么两者都不同的事情。

按地址栏,然后按1.5至3秒内按Enter键打开我的页面

如果我在Firefox中按“刷新”按钮,则需要很长时间,然后按Enter键(3到6秒)

我真的不知道这里有什么问题。刷新按钮不从缓存中获取图像,css或js。

有人指定我这里的重要事项。

3 个答案:

答案 0 :(得分:1)

发送的HTTP请求不同。通过按Enter键,您可以告诉浏览器导航到某个页面并应用常规资源缓存行为(就像单击链接一样)。这意味着在服务器上生成需要2秒钟并且发送时间为“Max-Age:1 year”标头的链接CSS文件,如果在本地缓存中可用,则不会再次获取。

使用F5,您明确告诉浏览器刷新页面上使用的资源。通常会再次请求image / css / js文件,并且不会使用“If-Modified-Since”或“If-None-Match”标头获取资源。

我不认为这是任何规范的一部分,但是如果Web开发人员看到服务器资源更改反映出来,无论缓存规则如何都是有意义的。

答案 1 :(得分:0)

我猜你在某个地方隐藏了表单数据。如果您点击f5,Firefox将重新发送该数据(有时会附带一条警告消息)。如果你只是点击Enter,那就是对同一网址的新的“干净”请求。

答案 2 :(得分:0)

它可能会从内存中重绘页面内容。按F5肯定会使浏览器对页面中使用的所有文件进行HEAD http请求。随后,浏览器将对更新的文件进行GET请求。这可以解释延迟。