今天志刚问到Firebug的net面板的 onload是神马意思,我哑口无言,用Firebug这么多年了都木有仔细研究过。正好这两天和大猫舜子等童鞋一起研究@import css的问题,顺便把这个详细了解下吧。 Net面板 Net面板就是Firebug中的net tab,中文应该叫“网络”?它可以监控页面中的HTTP请求,然后将收集到的信息展现出来。固然,要使用这个功能,你要先点击Net字符右边的小三角将它启用。 PS:我这里的环境是Firefox 4+Firebug 1.7,旧版本的界面可能会稍有不合。 它会将页面中所有的请求/相应的完整过程整理好列出来。 上面的截图显示,前端观察首页的页面请求概况:共9个请求,每个条目都包含相关资源一些信息: 请求类型(GET|POST) 请求地址(鼠标悬浮在URL列上时会完整显示) 状态及其描述(200 ok) 所属域名 资源巨细 图形化的时间线 最底部一行会显示一个简单的统计信息。 请求/响应详情 点击url前面的+按钮后,该条目就会展开,显示该请求的详细信息: 可以看到这里有几个tab: headers:请求/响应的HTTP头 response:从服务器返回的数据 HTML:HTML响应的预览(只有HTML格式的请求才会显示) headers 从上图中可以看到,headers部门会展示两个信息:响应头和请求头,别离包含着一些信息,需要注意的是,请求头中包含了User-Agent信息和 COOKIE值。记得之前有个Firebug的扩展叫FireCOOKIE,现在的Firebug展示了这些信息,这个扩展基本上就没有用了。 PS:貌似之前有个Firefox的插件叫Live Http Header的,嗯,功能基本上也被Firebug集成了。 Response 响应tab显示请求后从服务器返回的数据,嗯,和响应头是纷歧样的,这里回事一些纯数据,如果是text/*类型(content-type)就会显示原始代码文本,如果是image/*类型,会直接显示相关图片。 浏览器缓存 如果请求的资源使用了缓存,那么这里就会多出一个cache的tab: post|put请求 如果请求会发送一些数据,这里将会泛起另一个tab: URL参数 如果页面请求中包含一些参数(查询字段),则会有一个Params的tab在前面: json 如果请求是Json,那么这里会有json的tab,采取弹性分层的结果展示详细的数据: 时间线 firebug的时间线以瀑布图的形式展现,很直观,而当你把鼠标悬浮在时间线上的时候,就会弹出该条时间线的详情的tips,这个tips包含5个阶段和2个事件: DNS Lookup:DNS查询时间 Connection:建立一个TCP链接花掉的时间 sending:向服务器发送请求需要的时间 Waiting :期待服务器响应 Receiving:从服务器获取文件消耗的时间 DOMContentLoaded: 事件,DOMContentLoaded事件完成的时间(从请求倡议时开始,如果这个时候事件已经完成,这里就多是负值) Load:事件,页面load事件完成的时间(从请求倡议时开始,如果这个时候事件已经完成,这里就多是负值) 最上面一行,+859ms started暗示前面的请求花掉的时间。 该案例的解读: 黄色的tips中,每一行都包含两个数字,前面的暗示该阶段倡议时在该请求中的时间点,第二个是该阶段花掉的时间,好比,图中,前三行花掉的时间都是0, 所以,waiting阶段,左边的数字就是0,而右边是自己花掉的时间409ms,那么在下一个阶段,左边的时间就是前面的时间的和——409ms。 在这个请求开始后6.87s时,DOMContentLoaded事件完成。 在这个请求开始后8.43s,load事件完成。 深入了解: 从这个截图,我们可以看到以下信息: 第一个请求在2.65s时完成,第二个在1.52s…等 从第一个请求到最有一个请求,花掉了共6.96秒时间 从第一个请求到load事件完成,花掉了6.97秒钟的时间 插图版解释: 因为DOMContentLoaded和load事件花掉的时间多是负值,也就是在事件在请求完成之前就完成了,两者都多是负值,而通常最后一个请求完成于load事件结束之后,所以,通常右下角onload的时间会比总时间少。