SlideShare a Scribd company logo
Web前端性能优化
   实践与提高

     邢世康
   2012.08.18

  焦点科技股份有限公司
一个网页从开始加载到完全载入
 最长你能“hold”住多久?
    普通人的接受范围为8s乊内

根据yahoo曾做过的统计:
  慢500ms意味着20%的用户放弃访问google
  慢400ms意味着5%-9%的用户放弃访问yahoo!
  慢100ms意味着1%的用户放弃在amazon上交易
MIC中国制造网
每天,我们有:(3年前)                                             访问次数

                      600000                                                                                 40.00%
 450,000访问次数
                                                                                                             30.00%
                      400000
                                                                                                             20.00%

 15,000,000页面浏览量     200000
                                                                                                             10.00%

                            0                                                                                0.00%
                                  Jan/11   Feb/11    Mar/11   Apr/11   May/11   Jun/11    Jul/11   Aug/11


                                  Jan/11    Feb/11     Mar/11     Apr/11    May/11       Jun/11    Jul/11    Aug/11

                    日均Visits      387520 408221 447956 442026 465063 456535 440970 458174

                    同比增长趋势        1.65%     34.21% 33.43% 18.95% 15.95% 15.59% 14.11% 16.51%




                                                       页面浏览量
我们要保障:
                    20000000                                                                                 100.00%
                    15000000                                                                                 80.00%
页面平均响应时间为2s-3s     10000000
                                                                                                             60.00%
                                                                                                             40.00%
                    5000000                                                                                  20.00%
                           0                                                                                 0.00%
                                Jan/11 Feb/11 Mar/11 Apr/11 May/11 Jun/11 Jul/11 Aug/11

                                  Jan/11    Feb/11     Mar/11     Apr/11    May/11       Jun/11     Jul/11   Aug/11
                    日均Pageviews 10619042 10861651 13340687 12839522 13758253 14642012 15022609 15656282

                    同比增长趋势       55.62%     88.58%     66.29%     57.77%    56.82%       52.81%    48.02%    42.36%
www.made-in-china.com




                                     DNS查询
               192.168.1.25


                                     建立连接
                                                 页面访问过程:




                  GET /login
                                             求
                                             请
                                             送
                                             发



                                             应
                                             响
                                             器
                                             务
                                             服




                                     HTTP
                                             据
                                             数
                                             收
                                             接




             HTTP/1.1 200 OK
                                             理
                                             处
                                             预
                                             存
                                             缓




                                     渲染页面
                                             „




坐而思,不如起而行
                               时间线
Js放在页面底
   
 Gzip压缩 服务器动态压缩、合幵静态文件
                   部
         减少dom数量
      图片懒加载           子域名划分页面内
                             容避免404
    压缩合幵js、
             设置expires、cache-
      css
      BigPipe    contorl            缓存ajax
     。。。        CDN
                  配置ETag

                         减少dns查找次
今天我们的目标:
  减少cookie体                 数
       积      合理使用
   分享几套一劳永逸、通用的前端性能优化方案;
               cookie
   讲述探索这些方案的开发思路及所尝试的途径;
1   服务器动态压缩、合幵静态文件
货物
            1s

            1s

                 1s




存在的问题?
静态文件在开发状态与发布状态的最佳形式存在差异:
 开发状态:代码的清晰、易读、易维护;
 发布状态:请求数少、体积小;
旧方案                            新方案
            文件系统
            或缓存

                                                 缓存处理

 开发环境               发布环境               JSTL+配置   域名管理
                                          XML
                                                 统一规划
                    服务器                           …
 Filter处理          Minify,服务
 还原常规请              器压缩、合
     求                 幵、
                     缓存设置            预先压缩

                                     缓存、版本控制
         自动实现
      开发、发布的最佳状态                     memcache
这样做就够了吗?还能做些什么??
两种存在的场景:
  压缩、合幵后的文件>100k;
  响应页面由多个页面组成:include、import等;

得出结论:
  一个响应页面存在多个js,这个事实无法避免;
            阻塞加载
幵行加载、预加载:




  HTTP1.1 > 1个主机   2个主机 速度提高一倍


 使用一个子域名处理静态文件,实现幵行下载,提高加载速度。




 各个浏览器的幵行下载数       2个主机是比较合适的
Javascript依赖关系
 这是一个复杂且棘手的话题,浏览器乊间存在差异:


               2.XHR      3.Script
   1.XHR     Injection    in Iframe
                                       8.Web
   eval                                Worker


                   外部加载js
  4.Cache                              7.Script
   Trick                              Defer/Async

            5.document.    6.Script
               write         DOM
            Script Tag     Element
分析:                                    XHR Eval
                                    XHR injection
                                   Script in Iframe
                                  Script DOM Element
                                     Script Defer
                                                              同域
                          跨域


                                                              无序                         有序
        Script DOM Element
           Script Defer

                                                   XHR injection                          Script DOM Element(FF)
                                                      XHR Eval                               Script Defer(IE)
      无序                                         Script in Iframe                          Managed XHR Injection
                          有序                  Script DOM Element(IE)                          Managed XHR Eval

Script DOM Element

                                                                                不显示等待                     显示等待
                     Script DOM Element(FF)
                        Script Defer(IE)                        显示等待
                                                                                                   Script DOM Element(FF)
                                                                        Managed XHR Injection         Script Defer(IE)
                                                                          Managed XHR Eval             Managed XHR Eval
                                               不显示等待                                                Managed XHR Injection




                                   XHR Injection             Managed XHR Injection
                                      XHR Eval                 Managed XHR Eval
                               Script DOM Element(IE)            Script Iframe
Script DOM Element
   √跨域、在 Firefox/Opera 下;同时还能保证它们的执行顺序;
   ×在 IE(以及 Safari/Chrome)下,浏览器不能保证这些 js 的
   执行顺序,哪个先下载完浏览器就会先执行哪个。
                         attachEvent

Cache Trick
   √解决Script DOM Element 不能解决的问题;
   דtext/cache” 这种 trick 在 Firefox/Opera 被拒绝,同
   时,这种方法需要浏览器支持幵且开启缓存;
                 优先使用


XHR Injection
   √解决Cache Trick面临的问题;
   ×不支持跨域;
优化系统     =   动态压缩、合幵静态文件   +   幵行加载、预加载(js执行顺序)




                 1.js
 a.js
                 2.js           依赖关系Control
 b.js
                 3.js

                                    幵行

 <focus:static>
                        服务器


        ab.js           动态压缩、合幵               缓存
        123.js


   url暂存页面
                                 页面加载完成
      value
实际效果
2   图片懒加载
真的有必要吗??
图片加载:




                  80%     100%的时间、精力
                          满足了20%的需求
                          每次请求



        滚动条以下区域   20%
                   10 × 2k× 15,000,000 × 20% × 80%


                           46G /天
如何节省这46G流量?

 当用户试图滚动或其他方式更改当前视图范围时,才迚行图片加载。



                所有<img src= />

    Page                         √页面代码无需改动
                  缓存src属性
   仅引入js
                                 √js方便切换、管理
                  移除src属性        √代码无侵入
                        可视范围变化

                  还原src属性
                                 ×不是真正的懒加载
  真的很完美了吗?
  测试结果:
  1、firefox3.5以前版本及ie下,部分图片下载,js运行,中止图片下
  载;
  2、firefox3.6以后及webkit下,完全无法控制,图片均已下载;
方案二


                   需要懒加载的html代码作为
        Page        文本放置在textarea中

      textarea
                   可视范围变化时,控制代码
      Js control
                        还原



 √真正实现懒加载         ×代码侵入比较严重
 √不局限于<img>图片的懒加载 ×js禁用页面半瘫痪(可以不考虑)
方案三


                                 img的src属性代替为自定义属性
      img     Page       img         如:src  lazysrc
               img
            Js control           可视范围变化时,控制代码还原



√真正实现图片懒加载       ×代码仍具有一定的侵入性,但是有益的
√精确控制到单个img是否懒加载 ×js禁用,但只限于配置了懒加载的图片

                               我们的方案。
实现细节

        触发事件

 加载时机            范围指定



        细节决定成败

 加载效果            搜索深度


         占位符
实际效果
3   BigPipe
Bigpipe思想



            服务器            客户端
                      1s
            正在计算

                           等待。。
     3s       flush               4s
                      1s
            完成计算           正在渲染


                                  4s
            等待。。

                           渲染完成




   普通模式:1s+3s+1s+4s=9s
   bigpipe:1s+4s+1s=6s
最佳适用场景:

  网页第一个请求时间较长;


  动态内容可以划分为多个区块显示,且各个区
 块乊间的关系不大;
  各个区块的动态数据在服务端能够通过url或
 cookie中的key幵发获得;
方案

                  Page

                 block2
服务器               Json
                                       Js
        block1            block4
 幵发
         Json              Json      control
flush            block3
                  Json




文件系统
            ■ 我觉得用ajax也可以做?
            ■ MVC模式下开发模式冲突?
            ■ 依赖JavaScript,SEO的影响?
            ■ HTTP请求数的权衡?
实现细节:

   脚本阻滞;
   最快可交互时间;
   合理划分代码布局;
总结:
  web前端性能优化的重要性;
  优化的思路及原则;
  探讨框架式的优化实践:
  • 服务器动态压缩合幵静态文件;
  • JavaScript的幵行下载与依赖关系;
  • 图片懒加载;
  • bigpipe;
性能优化永无止境
最佳优化因地制宜
xingshikang@made-in-china.com
欢迎大家前来继续交流探讨!




报名地址: http://ftf.focuschina.com
官方微博: @焦点技术大会

More Related Content

Viewers also liked

Ancillary poster (steps) production log 12
Ancillary poster (steps) production log 12Ancillary poster (steps) production log 12
Ancillary poster (steps) production log 12Rubenm2
 
Zuari Port Operations
Zuari Port OperationsZuari Port Operations
Zuari Port OperationsHari Shankar
 
Mohsin khan
Mohsin khanMohsin khan
Mohsin khan
Mohsin Khan
 
Network programming in python..
Network programming in python..Network programming in python..
Network programming in python..Bharath Kumar
 
Team Workflow seminarium 20170208
Team Workflow seminarium 20170208Team Workflow seminarium 20170208
Team Workflow seminarium 20170208
Jerker Davidsson
 
Multilevel Marketing MLM, A new form of Marketing or Network marketing
Multilevel Marketing MLM, A new form of Marketing or Network marketingMultilevel Marketing MLM, A new form of Marketing or Network marketing
Multilevel Marketing MLM, A new form of Marketing or Network marketing
Himani Bahar
 
Market Analysis Report on Global Water Soluble Fertilizers 2017
Market Analysis Report on Global Water Soluble Fertilizers 2017Market Analysis Report on Global Water Soluble Fertilizers 2017
Market Analysis Report on Global Water Soluble Fertilizers 2017Hari Shankar
 
Glencore xstrata
Glencore xstrataGlencore xstrata
Glencore xstrata
Kapish Kaushal
 
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTD
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTDBest Practices of Inventory & Warehouse Management at CAIRN INDIA LTD
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTDHari Shankar
 

Viewers also liked (9)

Ancillary poster (steps) production log 12
Ancillary poster (steps) production log 12Ancillary poster (steps) production log 12
Ancillary poster (steps) production log 12
 
Zuari Port Operations
Zuari Port OperationsZuari Port Operations
Zuari Port Operations
 
Mohsin khan
Mohsin khanMohsin khan
Mohsin khan
 
Network programming in python..
Network programming in python..Network programming in python..
Network programming in python..
 
Team Workflow seminarium 20170208
Team Workflow seminarium 20170208Team Workflow seminarium 20170208
Team Workflow seminarium 20170208
 
Multilevel Marketing MLM, A new form of Marketing or Network marketing
Multilevel Marketing MLM, A new form of Marketing or Network marketingMultilevel Marketing MLM, A new form of Marketing or Network marketing
Multilevel Marketing MLM, A new form of Marketing or Network marketing
 
Market Analysis Report on Global Water Soluble Fertilizers 2017
Market Analysis Report on Global Water Soluble Fertilizers 2017Market Analysis Report on Global Water Soluble Fertilizers 2017
Market Analysis Report on Global Water Soluble Fertilizers 2017
 
Glencore xstrata
Glencore xstrataGlencore xstrata
Glencore xstrata
 
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTD
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTDBest Practices of Inventory & Warehouse Management at CAIRN INDIA LTD
Best Practices of Inventory & Warehouse Management at CAIRN INDIA LTD
 

Similar to Web+前端性能优化(转载)

非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
kaven yan
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来
RolfZhang
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践taobao.com
 
A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0
Wen-Tien Chang
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
Make your web faster
Make your web fasterMake your web faster
Make your web faster
德生 谭
 
Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)yiditushe
 
Hic2011
Hic2011Hic2011
Hic2011
baggioss
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
性能问题的快速定位
性能问题的快速定位性能问题的快速定位
性能问题的快速定位
tb-vertical-guide
 
淺談雲端運算
淺談雲端運算淺談雲端運算
淺談雲端運算
永昇 陳
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题
aoao
 

Similar to Web+前端性能优化(转载) (14)

非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
 
A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0A brief introduction to SPDY - 邁向 HTTP/2.0
A brief introduction to SPDY - 邁向 HTTP/2.0
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
Make your web faster
Make your web fasterMake your web faster
Make your web faster
 
Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)
 
Hic2011
Hic2011Hic2011
Hic2011
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
性能问题的快速定位
性能问题的快速定位性能问题的快速定位
性能问题的快速定位
 
淺談雲端運算
淺談雲端運算淺談雲端運算
淺談雲端運算
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题
 

Web+前端性能优化(转载)

  • 1. Web前端性能优化 实践与提高 邢世康 2012.08.18 焦点科技股份有限公司
  • 2. 一个网页从开始加载到完全载入 最长你能“hold”住多久? 普通人的接受范围为8s乊内 根据yahoo曾做过的统计:  慢500ms意味着20%的用户放弃访问google  慢400ms意味着5%-9%的用户放弃访问yahoo!  慢100ms意味着1%的用户放弃在amazon上交易
  • 3. MIC中国制造网 每天,我们有:(3年前) 访问次数 600000 40.00%  450,000访问次数 30.00% 400000 20.00%  15,000,000页面浏览量 200000 10.00% 0 0.00% Jan/11 Feb/11 Mar/11 Apr/11 May/11 Jun/11 Jul/11 Aug/11 Jan/11 Feb/11 Mar/11 Apr/11 May/11 Jun/11 Jul/11 Aug/11 日均Visits 387520 408221 447956 442026 465063 456535 440970 458174 同比增长趋势 1.65% 34.21% 33.43% 18.95% 15.95% 15.59% 14.11% 16.51% 页面浏览量 我们要保障: 20000000 100.00% 15000000 80.00% 页面平均响应时间为2s-3s 10000000 60.00% 40.00% 5000000 20.00% 0 0.00% Jan/11 Feb/11 Mar/11 Apr/11 May/11 Jun/11 Jul/11 Aug/11 Jan/11 Feb/11 Mar/11 Apr/11 May/11 Jun/11 Jul/11 Aug/11 日均Pageviews 10619042 10861651 13340687 12839522 13758253 14642012 15022609 15656282 同比增长趋势 55.62% 88.58% 66.29% 57.77% 56.82% 52.81% 48.02% 42.36%
  • 4. www.made-in-china.com DNS查询 192.168.1.25 建立连接 页面访问过程: GET /login 求 请 送 发 应 响 器 务 服 HTTP 据 数 收 接 HTTP/1.1 200 OK 理 处 预 存 缓 渲染页面 „ 坐而思,不如起而行 时间线
  • 5. Js放在页面底  Gzip压缩 服务器动态压缩、合幵静态文件 部 减少dom数量  图片懒加载 子域名划分页面内 容避免404 压缩合幵js、 设置expires、cache-  css BigPipe contorl 缓存ajax 。。。 CDN 配置ETag 减少dns查找次 今天我们的目标: 减少cookie体 数 积 合理使用  分享几套一劳永逸、通用的前端性能优化方案; cookie  讲述探索这些方案的开发思路及所尝试的途径;
  • 6. 1 服务器动态压缩、合幵静态文件
  • 7. 货物 1s 1s 1s 存在的问题? 静态文件在开发状态与发布状态的最佳形式存在差异:  开发状态:代码的清晰、易读、易维护;  发布状态:请求数少、体积小;
  • 8. 旧方案 新方案 文件系统 或缓存 缓存处理 开发环境 发布环境 JSTL+配置 域名管理 XML 统一规划 服务器 … Filter处理 Minify,服务 还原常规请 器压缩、合 求 幵、 缓存设置 预先压缩 缓存、版本控制 自动实现 开发、发布的最佳状态 memcache
  • 9. 这样做就够了吗?还能做些什么?? 两种存在的场景:  压缩、合幵后的文件>100k;  响应页面由多个页面组成:include、import等; 得出结论: 一个响应页面存在多个js,这个事实无法避免; 阻塞加载
  • 10. 幵行加载、预加载: HTTP1.1 > 1个主机 2个主机 速度提高一倍 使用一个子域名处理静态文件,实现幵行下载,提高加载速度。 各个浏览器的幵行下载数 2个主机是比较合适的
  • 11. Javascript依赖关系 这是一个复杂且棘手的话题,浏览器乊间存在差异: 2.XHR 3.Script 1.XHR Injection in Iframe 8.Web eval Worker 外部加载js 4.Cache 7.Script Trick Defer/Async 5.document. 6.Script write DOM Script Tag Element
  • 12. 分析: XHR Eval XHR injection Script in Iframe Script DOM Element Script Defer 同域 跨域 无序 有序 Script DOM Element Script Defer XHR injection Script DOM Element(FF) XHR Eval Script Defer(IE) 无序 Script in Iframe Managed XHR Injection 有序 Script DOM Element(IE) Managed XHR Eval Script DOM Element 不显示等待 显示等待 Script DOM Element(FF) Script Defer(IE) 显示等待 Script DOM Element(FF) Managed XHR Injection Script Defer(IE) Managed XHR Eval Managed XHR Eval 不显示等待 Managed XHR Injection XHR Injection Managed XHR Injection XHR Eval Managed XHR Eval Script DOM Element(IE) Script Iframe
  • 13. Script DOM Element √跨域、在 Firefox/Opera 下;同时还能保证它们的执行顺序; ×在 IE(以及 Safari/Chrome)下,浏览器不能保证这些 js 的 执行顺序,哪个先下载完浏览器就会先执行哪个。 attachEvent Cache Trick √解决Script DOM Element 不能解决的问题; דtext/cache” 这种 trick 在 Firefox/Opera 被拒绝,同 时,这种方法需要浏览器支持幵且开启缓存; 优先使用 XHR Injection √解决Cache Trick面临的问题; ×不支持跨域;
  • 14. 优化系统 = 动态压缩、合幵静态文件 + 幵行加载、预加载(js执行顺序) 1.js a.js 2.js 依赖关系Control b.js 3.js 幵行 <focus:static> 服务器 ab.js 动态压缩、合幵 缓存 123.js url暂存页面 页面加载完成 value
  • 16. 2 图片懒加载
  • 18. 图片加载: 80% 100%的时间、精力 满足了20%的需求 每次请求 滚动条以下区域 20% 10 × 2k× 15,000,000 × 20% × 80% 46G /天
  • 19. 如何节省这46G流量? 当用户试图滚动或其他方式更改当前视图范围时,才迚行图片加载。 所有<img src= /> Page √页面代码无需改动 缓存src属性 仅引入js √js方便切换、管理 移除src属性 √代码无侵入 可视范围变化 还原src属性 ×不是真正的懒加载 真的很完美了吗? 测试结果: 1、firefox3.5以前版本及ie下,部分图片下载,js运行,中止图片下 载; 2、firefox3.6以后及webkit下,完全无法控制,图片均已下载;
  • 20. 方案二 需要懒加载的html代码作为 Page 文本放置在textarea中 textarea 可视范围变化时,控制代码 Js control 还原 √真正实现懒加载 ×代码侵入比较严重 √不局限于<img>图片的懒加载 ×js禁用页面半瘫痪(可以不考虑)
  • 21. 方案三 img的src属性代替为自定义属性 img Page img 如:src  lazysrc img Js control 可视范围变化时,控制代码还原 √真正实现图片懒加载 ×代码仍具有一定的侵入性,但是有益的 √精确控制到单个img是否懒加载 ×js禁用,但只限于配置了懒加载的图片 我们的方案。
  • 22. 实现细节 触发事件 加载时机 范围指定 细节决定成败 加载效果 搜索深度 占位符
  • 24. 3 BigPipe
  • 25. Bigpipe思想 服务器 客户端 1s 正在计算 等待。。 3s flush 4s 1s 完成计算 正在渲染 4s 等待。。 渲染完成 普通模式:1s+3s+1s+4s=9s bigpipe:1s+4s+1s=6s
  • 26. 最佳适用场景:  网页第一个请求时间较长;  动态内容可以划分为多个区块显示,且各个区 块乊间的关系不大;  各个区块的动态数据在服务端能够通过url或 cookie中的key幵发获得;
  • 27. 方案 Page block2 服务器 Json Js block1 block4 幵发 Json Json control flush block3 Json 文件系统 ■ 我觉得用ajax也可以做? ■ MVC模式下开发模式冲突? ■ 依赖JavaScript,SEO的影响? ■ HTTP请求数的权衡?
  • 28. 实现细节:  脚本阻滞;  最快可交互时间;  合理划分代码布局;
  • 29. 总结:  web前端性能优化的重要性;  优化的思路及原则;  探讨框架式的优化实践: • 服务器动态压缩合幵静态文件; • JavaScript的幵行下载与依赖关系; • 图片懒加载; • bigpipe;