Page 165 - Web性能权威指南
P. 165

资源的瀑布图能够揭示出页面的结构和浏览器处理顺序。首先,取得 www.yahoo.
               com 对应的文档,同时分派新的 HTTP 请求:HTTP 解析是递增执行的,这样浏览
               器可以及早发现必要的资源,然后并行发送请求。实际上,何时获得什么资源很大
               程度上取决于标记结构。浏览器可以变更某些请求的优先顺序,但递增地发现文档
               中的每一个资源,最终造就了不同资源间的“瀑布效果”。

               其次,“Start  Render”(绿色的竖线)会在所有资源下载完成前开始,以便用户在页
               面构建期间就能与之交互。其实,“Document  Complete”事件(蓝色的竖线)   也会
               在剩余资源下载完成前触发。换句话说,浏览器的加载旋转图标此时停止旋转,用
               户可以继续与页面交互,但 Yahoo! 主页会渐进地在后台填充后续内容,比如广告
               和社交部件。

               最早渲染时间、文档完成时间和最后资源获取时间,这三个时间说明我们讨论 Web
               性能时有三个不同测量指标。我们应该关注哪一个时间呢?答案并不唯一,因应用
               而不同! Yahoo! 的工程师们选择了利用浏览器递增加载机制,让用户能够尽早与
               重要内容交互。而这样一来,他们必须根据应用不同,确定哪些内容重要(须先加
               载),哪些内容不重要(可以后填充)。


                          什么时候请求什么资源,以什么顺序请求资源,这在不同的浏览器中可能
                          有不同的实现。结果,你的应用性能也会因浏览器而异。
                          提示:WebPageTest 支持选择位置和浏览器。


               网络的瀑布图是个很强大的工具,有助于揭示任何页面或应用是否处于优化状态。
               前面分析和优化资源瀑布的过程,一般称为前端性能分析和优化。不过,这个称呼
               有误导性,好像所有性能瓶颈都在客户端似的。实际上,尽管 JavaScript、CSS 和
               渲染流水线很重要,而且资源对性能影响很大,但服务器响应时间和网络延迟(“后
               端性能”)对资源瀑布的影响也不容忽视。毕竟,如果网络被阻塞,也就谈不上什么
               解析或运行资源了!
               为了说明这一点,只要切换到 WebPageTest 资源瀑布的连接视图即可(图 10-5)。

               资源瀑布图记录的是 HTTP 请求,而连接视图展示了每个 TCP 连接(这里共 30
               个)的生命期,这些连接用于获取 Yahoo! 主页的资源。哪里比较突出呢?注意蓝
               色的下载时间,很短,在每个连接的总延迟里几乎微不足道。这里总共发生了 15
               次 DNS 查询,30 次 TCP 握手,还有很多等待接收每个响应第一个字节的网络延迟
              (绿色)。






               150   |   第 10 章
   160   161   162   163   164   165   166   167   168   169   170