深入了解浏览器的各种刷新规则

深入了解浏览器的各种刷新规则
PC浏览器的刷新方法大约有四种。
超链接点击1。输入或标记
2。刷新刷新按钮
三.Ctrl + F5刷新/ Ctrl + Shift + R刷新
4。背部和刷新
明智的浏览器通常以三种方式刷新:
超链接点击1。输入或标记
2。按钮刷新
三.背部和刷新
他们是不同的。不同浏览器的效果也不同。以一个测试页面,iframe为例,我们测试的前提是让页面缓存。

PC浏览器

超链接点击1。输入或标记

如果您访问过这个网站,这个刷新的方法是直接从缓存中提取数据,而请求不是服务器端的,当然前提是网站有有效的缓存。

如上所述,Chrome浏览器下的HTML页面请求,如果请求参数中没有匹配(可能在某些情况下由于参数而修改了一些),服务器返回304,表示请求访问了服务器,并进行了缓存验证。

如果修改了:如果请求部分在指定的时间之后被修改,请求就成功了。如果未修改,则返回304个代码,对应于上次修改的响应头。
如果没有匹配:如果内容没有改变,返回304代码,参数是ETag,服务器发送之前,和ETag,服务器的响应进行比较,判断是否改变或没有,对应的响应头Etag。
看看在iframe再次请求

首先,在src属性中的iframe本身并不要求干扰。
你可以看到在iframe的要求也与如果没有匹配参数以及外部请求。
查看图片资源的请求,我们提前设置了max = 2628000。

您可以看到,这张图片的请求头没有,如果没有匹配参数,但它进行缓存控制:最大年龄= 0。来自缓存的状态码为200,表示请求不访问服务器,但它直接是缓存返回的响应。

事实上,当本地缓存,但您不必设置它有效或过期时,输入刷新方法将主动访问服务器,以确定是否需要更新缓存,如果设置有效且不过时,该方法将直接从缓存中刷新资源请求。
在Firefox的Firebug,你可以看到,HTML页面请求返回304,并要求如果在标题没有匹配的参数,如铬相同。

在iframe的要求也不不同于铬。图片直接从缓存中加载,所以Firefox不会直接显示它。

摘要:或输入一个标签超链接,点击刷新方法,Chrome和Firefox显示相同的缓存,对于资源请求,仍然在有效期内将直接从缓存中返回,否则如果不匹配,则会带来/如果没有匹配的访问服务器参数决定是否需要更新缓存。

2。F5刷新/ Ctrl + R刷新

首先,看看Chrome和Chrome所有的资源都是一致的,包括在iframe的要求,已在最大年龄设置图片资源。
上面的图像是HTML文件的请求。
这个时间的请求超过缓存控制:最大年龄= 0,
服务器将决定是否缓存需求的基础上,它的最后修改或更新。如果不需要更新,它将返回304,并告诉浏览器它的缓存也可以使用。

更新缓存,返回最新的数据和新的ETag /最后修改和更新浏览器缓存如果你需要更新。
看看火狐,
HTML资源和建立最大年龄的图片资源的请求,Firefox和Chrome的效果是相同的,但在iframe的资源要求是有所不同的,与铬,没有缓存控制:最大年龄= 0参数。

三.刷新
对Firefox和Chrome的所有请求都是一致的,所以看看Chrome。
这个刷新请求没有经过修改,如果没有匹配模式2中的参数。缓存控制价值转化为无缓存添加杂注:无缓存。
后两个参数相同,仅与HTTP版本兼容。
没有缓存使请求强制访问服务器并验证它。然而,由于没有If-Modified-Since如果没有匹配参数,服务器无法验证,所以服务器直接返回数据和新的Last-Modified和ETag,和状态码200ok。

4。背部和刷新

反向刷新主要是指页面被强行设置而不是缓存的站点。这里的铬比较标准。从一页到另一页,页面上的资源直接缓存。

如上所示,在Chrome浏览器下进行的测试。

在这背后,Firefox有一种不同的方式来做它:
如上图所示,将有一个新的名词:bfcache
全名是前向缓存,即往返缓存,当用户使用浏览器的后退按钮和向前按钮时,为了加快页面转换速度
这不仅节省了页面缓存的数据,同时也节省了DOM和Javascript的状态;事实上,它节省了内存中的整个网页。也就是说,落后并不意味着HTML / CSS JS / /接口等动态和静态资源不会rerequest,甚至JS不会可查询
不是所有的人都是形式bfcache,因为我的测试页面添加一个iframe。原来,iframe不会被Firefox的往返机制缓存。它仍然遵循URL输入+刷新的请求方式。
这一点也明确指出在MDN:

如果网页在bfcache,Load事件将不会打开页面再次引发。
虽然整个页面的状态保存在内存中,它并没有引发Load事件造成任何问题,但为了更清楚地说明bfcache行为,仍然提供了一些新的事件。

pageshow

第一个事件是pageshow,被触发时,网页显示,无论是从网页的bfcache。加载页面,pageshow将触发load事件触发后,和bfcache页,pageshow将引发目前页面状态完全恢复,也要注意,虽然这一事件的目标是重要文件,它必须被添加到事件处理程序的窗口。
除了通常的属性,pageshow事件的事件对象还包含一个布尔值属性命名的坚持。如果页存储在bfcache,这个属性的值是true;否则,此属性的值为false。
你可以判断它是否是一个pageshow事件bfcache通过页面触发基于坚持。

pagehide

The pageshow event corresponds to the pagehide event, which triggers when the browser unloads the page and is triggered before the unload event.As with the pageshow event, pagehide is triggered on the document, but its event handler must be added to the Windows object.The event object of this event also contains the persisted property

总结

好了,这是本文的全部内容,详细介绍了明智的浏览器,我们以后会更新它,有兴趣继续关注。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部