浏览器加载各时间节点对应的状态

来源:互联网 发布:预告片 知乎 编辑:程序博客网 时间:2024/06/05 13:27

prompt for unload提示卸载

navigationStart

当访问一个新页面时,当前页面卸载完成所返回的时间点,如果没有当前页面,则返回fetchStart时间点。


unloadEventEnd

如果要打开的页面和当前的页面同源,则返回用户unload事件执行完成后的时间点,如果当前文档不存在或者不同源,则返回0

redirect

forward内部跳转 和redirect重定向跳转的区别:

1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.

redirectStart

如果是HTTP重定向,如果跳转都是同源的,则返回开始获取发起重定向的时间点,否则返回0(重定向:重定向就是写代码时候用response.sendRediect(String url);绑定session它的好处就是请求一次,加载一次。对比就是流程是转发。转发就是RequestDischer(String url);他的缺点是改变一次网页就要请求一次,用的越来越少了。重定向常常用于自动跳转,从活动空间来看大概分两类:服务器内部跳转和服务器之间跳转。服务器内部跳转常见于“登陆成功!5秒之后将自动进入首页”这种应用。而服务器之间跳转,种类稍微多一些:
(1)从服务器内跳往外部服务器;
(2)从A服务器跳转到B服务器,接着跳转到C服务器;
(3) 从A服务器跳转到B服务器, 业务处理完毕之后又跳转到A服务器;
(4) 从用户浏览器向A服务器发送请求,在出口网关处进行重定向,如通过iptable之类,重定向到一个认证服务器B,返回一个认证登陆的页面,当用户输入了正确的用户名和密码等,认证服务器B再通过http重定向到A服务器.

404 Not Found
301 Moved Permanently
302 Found
500 Internal Server Error
HTTP重定向就是通过301和302两种状态码来实现的。

302是临时重定向。表示被访问页面因为各种需要被临时跳转到其他页面。 浏览器在收到302 Found的状态码之后会在返回的HTTP Response Header中查找Location字段,然后访问对应地址。

301是永久重定向。同样,浏览器在发现301的状态码之后会查找Location字段,然后访问那个地址。Location字段的格式很随意,既可以是绝对地址,也可以是相对地址,还可以是相对根目录的地址。

301重定向和302重定向在SEO以及缓存上是有非常大区别的。对于SEO也就是搜索引擎优化,一个页面302重定向到另一个页面,新页面的PageRank不会受原页面影响。而一个页面301重定向到另一个页面,原页面的PageRank会被传递到新页面。所以对于一个网站进行域名转换,最好的方法就是使用301重定向,在经过一段时间之后可以不损失PR地将全站转移到新域名下。)


redirectEnd

如果是同源重定向,返回重定向请求接收完最后一字节的时间点,否则返回0

app cache(输完地址请求地址后检查缓存,若有相关信息,则直接打开,若无,则获取一个新的资源)
fetchStart

如果请求是用http get发起的,返回浏览器查缓存之前的时间点,否则返回发起获取资源的时间点
DNS(域名系统 )
domainLookupStart

返回浏览器发起DNS查询的时间点,如果是长连接或者请求文件来自缓存等本地存储则返回fetchStart时间点

domainLookupEnd

返回结束DNS查询的时间点,如果是长连接或者请求文件来自缓存等本地存储则返回fetchStart时间点
TCP(网络协议-传输控制协议)
connectStart

返回浏览器向服务器发起建立获取当前文档的连接请求的时间点,

如果是长连接或者请求文件来自缓存等本地存储则返回domainLookupEnd时间点

connectEnd

返回与服务器建立完成连接的时间点,

如果是长连接或者请求文件来自缓存等本地存储则返回domainLookupEnd时间点
request
requestStart

返回浏览器发起请求的时间,不管是向server还是本地缓存或存储
response
responseStart

返回浏览器拿到第一个响应字节的时间点,包括从服务器、缓存或者其他本地存储

responseEnd

返回浏览器拿到最后一个响应字节或者传输连接关闭的时间点,包括从服务器、缓存或者其他本地存储

processing

domLoading

返回浏览器将当前文档状态设置成loading的时间点

domInteractive

返回浏览器将当前文档状态设置成interactive(交互)的时间点

domContentLoadedEventStart

返回浏览器触发DOMContentLoaded事件执行之前的时间点

domContentLoadedEventEnd

返回浏览器触发DOMContentLoaded事件执行完成的时间点

domComplete

返回浏览器将当前文档状态设置成complete的时间点

load(load状态下可能load()方法会在onload事件上绑定处理函数(处理函数绑定给window对象),会在所有内容加载完毕后触发,若处理函数绑定在元素上,会在元素内容加载完后触发。)

loadEventStart

返回浏览器触发load事件执行之前的时间点,否则为0

loadEventEnd(浏览器加载转圈结束时在该时间点)

返回浏览器触发load事件执行完成的时间点


1 0