SlideShare uma empresa Scribd logo
1 de 25
浅析前端性能优化&测试
!important

• 80% 页面性能在前端

• 时间就是金钱

• 4s 原则
性能指标
• TTFB (Time to First Byte)
• TTSR (Time to Start Render)
  – TTFB
  – TTDD (Time To Document Download)
  – TTHE (Time To Head End)
• TTDC (Time to Document Complete)
  – TTSR
  – TTDC (Time to Dom Created)
  – TTST (Time to Script)
• TTFL (Time to Fully Loaded)
• TTI (Time to Interact)
如何度量

1 . 前后端协同

     后端接收到请求记录时间并写入页面,前端onload 记录时间算差
值。

     存在的问题:

     - 服务器和客户端时间不一致,需要处理。
2. 纯前端实现




  存在的问题:

  - 忽略了请求相关的时间,得到数据比真实数据要小。
3. 前一个页面和当前页面协同

  前一个页面点击链接是,记录时间,当前页面onload时间相减。



  存在的问题:

  - 实现较为复杂,第一次自主访问的页面无法测试。
4. 使用浏览器插件或者工具栏
   - google toolbar


5. 使用客户端软件
    - 哈勃
 - webpagetest



  存在的问题:

  - 通用性小,覆盖面积小。
6. 使用HTML5的Navigation Timing




performance.timing
http://www.tmall.com/test.php




http://www.tmall.com/
优化Tips

• Yahoo 34 条军规
     http://wiki.ued.taobao.net/doku.php?id=ued.bj:f2e:34rule




• 图片优化
 – 无损压缩
 – 格式选择 http://ued.taobao.com/blog/2010/12/10/jpg_png/
• Js&css顺序

    – 资源是否下载依赖JS执行结果

    – JS执行依赖Css最新渲染

    – 现代浏览器存在prefetch 优化




http://hikejun.com/blog/2012/02/02/js%E5%92%8Ccss%E7%9A%84%E9%A1%BA%E5%B
A%8F%E5%85%B3%E7%B3%BB/
• reflow & repaint

     - reflow
     对于 DOM 结构中的各个元素都有自己的盒子 (模型), 这些都需要浏览
器根据各种样式 (浏览器的, 开发人员定义的等) 来计算并根据计算结果将元素
放到它该出现的位置, 这个过程称之为 reflow;



     - repaint
     当各种盒子的位置, 大小以及其他属性, 例如颜色, 字体大小等都确定
下来后, 浏览器于是便把这些元素都按照各自的特性绘制了一遍, 于是页面的内
容出现了, 这个过程称之为repaint.
- 导致reflow 和 repaint 的因素

 - 添加或删除可见的DOM元素

 - 元素位置改变

 - 元素尺寸改变

 - 内容改变

 - 浏览器窗口改变
- 避免reflow 和 repaint 方法

 - 尽可能限制reflow 的影响范围

 - 集中改变样式

 - 实现元素动画,尽量使之脱离文档流,不影响其他元素

 - 避免频繁操作DOM

   - Dom操作时可以先移除或隐藏,操作完再插入、显示。
   - 创建多个DOM节点,一次性插入
• Javascript性能优化

  – 使用局部变量

  – 缓存频繁使用的对象、数组及相关属性值

  – 使脚本尽可能少的运行。
     - 短路表达式应用 , a && b||c
     - 基于事件处理相应的处理方法
     - 惰性函数
- 流程控制
 - if语句中,经常会发生的放在靠上位置。

 - If条件为连续的区间可以使用二分法拆分

 - 离散的判断,可以使用switch


- UI线程
 - Js 和 UI更新共享进程

 - 100 ms 原则

 - 使用定时器让出控制权
• css 性能优化
   - css渲染时间测试




   - 优化建议
   · 减少选择符层次
      · 慎用通选择符 *
      · 慎用滤镜
• 感官优化

     响应时间与用户体验

     0.1 s
            - 感觉很顺畅


     1.0s
            - 用户操作可能会受影响,并能感觉到不顺畅


     10s
            - 对用户影响比较严重,需要有进度提示,用户会感觉到沮
丧。
眼见的一定为实
小心菊花




延迟0.4 s 使用
tools
•   Firebug
•   Chrome 开发者工具
•   Ylsow
•   pagespeed
•   Fiddler
•   Httpwatch
•   dynatrace
• 内部平台

 –   阿里度    http://alibench.taobao.com/index.php

 –   POC系统 (comming soon…)

 – TaoBao ShowSlow http://showslow.taobao.net/

 – 鱼眼系统 http://wpo.taobao.net/

 –   页面显微镜 http://analytics.corp.taobao.com

 – 淘数据 http://dw.taobao.ali.com/index.htm

 – 数据门户 http://sg.admin.taobao.org/report/index.htm
• 外部平台

 – webpagetest   http://webpagetest.org/



 – httparchive   http://www.httparchive.org/index.php
一切皆权
衡 !
Thanks
!

Mais conteúdo relacionado

Mais procurados

Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案美团技术团队
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践taobao.com
 
性能优化
性能优化性能优化
性能优化Lu Wei
 
Qq.com前端架构实践与思考
Qq.com前端架构实践与思考Qq.com前端架构实践与思考
Qq.com前端架构实践与思考greengnn
 
Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)jimyhuang
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
快速搭建高性能服务端
快速搭建高性能服务端快速搭建高性能服务端
快速搭建高性能服务端moonbingbing
 
高性能网站建设
高性能网站建设高性能网站建设
高性能网站建设feifeipan
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享areyouok
 
张勇 搜搜前端架构
张勇 搜搜前端架构张勇 搜搜前端架构
张勇 搜搜前端架构isnull
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨areyouok
 
2011彩票首页开发实践
2011彩票首页开发实践2011彩票首页开发实践
2011彩票首页开发实践jay li
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇fangdeng
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生dennis zhuang
 
Chasingice
ChasingiceChasingice
Chasingice冰 白
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化Frank Xu
 

Mais procurados (20)

Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
 
性能优化
性能优化性能优化
性能优化
 
Qq.com前端架构实践与思考
Qq.com前端架构实践与思考Qq.com前端架构实践与思考
Qq.com前端架构实践与思考
 
Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
快速搭建高性能服务端
快速搭建高性能服务端快速搭建高性能服务端
快速搭建高性能服务端
 
Paveo Tweak WordPress
Paveo Tweak WordPressPaveo Tweak WordPress
Paveo Tweak WordPress
 
高性能网站建设
高性能网站建设高性能网站建设
高性能网站建设
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
 
张勇 搜搜前端架构
张勇 搜搜前端架构张勇 搜搜前端架构
张勇 搜搜前端架构
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
2011彩票首页开发实践
2011彩票首页开发实践2011彩票首页开发实践
2011彩票首页开发实践
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
 
Chasingice
ChasingiceChasingice
Chasingice
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化
 

Destaque

Destaque (8)

Keep yourselves in the mercy of God
Keep yourselves in the mercy of GodKeep yourselves in the mercy of God
Keep yourselves in the mercy of God
 
Wap
WapWap
Wap
 
新风尚活动分享
新风尚活动分享新风尚活动分享
新风尚活动分享
 
高端版Tmall
高端版Tmall高端版Tmall
高端版Tmall
 
21st century skills
21st century skills21st century skills
21st century skills
 
Node getting start
Node getting startNode getting start
Node getting start
 
Victorious
VictoriousVictorious
Victorious
 
When God Speaks
When God SpeaksWhen God Speaks
When God Speaks
 

Semelhante a 前端性能优化&测试

美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展d0nn9n
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen sharezcbug
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocitykumawu
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践longhao
 
前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关jay li
 
百度前端技术交流会--搜搜前端架构演变与优化
百度前端技术交流会--搜搜前端架构演变与优化百度前端技术交流会--搜搜前端架构演变与优化
百度前端技术交流会--搜搜前端架构演变与优化tiantianli
 
[Baidu web frontend_conference_2010]_[soso_frontend_architecture]
[Baidu web frontend_conference_2010]_[soso_frontend_architecture][Baidu web frontend_conference_2010]_[soso_frontend_architecture]
[Baidu web frontend_conference_2010]_[soso_frontend_architecture]思念 青青
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am iTwinsen Liang
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践Welefen Lee
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践taobao.com
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规yangdj
 
使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2kumawu
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平drewz lin
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4Daniel Chou
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)Joseph Chiang
 

Semelhante a 前端性能优化&测试 (20)

美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen share
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
 
前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关
 
百度前端技术交流会--搜搜前端架构演变与优化
百度前端技术交流会--搜搜前端架构演变与优化百度前端技术交流会--搜搜前端架构演变与优化
百度前端技术交流会--搜搜前端架构演变与优化
 
[Baidu web frontend_conference_2010]_[soso_frontend_architecture]
[Baidu web frontend_conference_2010]_[soso_frontend_architecture][Baidu web frontend_conference_2010]_[soso_frontend_architecture]
[Baidu web frontend_conference_2010]_[soso_frontend_architecture]
 
Html5
Html5Html5
Html5
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规
 
使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
 

Mais de tbmallf2e

猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
618风林火山(仙快羽)
618风林火山(仙快羽)618风林火山(仙快羽)
618风林火山(仙快羽)tbmallf2e
 
猫粮快报 金艳艳
猫粮快报 金艳艳猫粮快报 金艳艳
猫粮快报 金艳艳tbmallf2e
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)tbmallf2e
 
猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
番茄工作法
番茄工作法番茄工作法
番茄工作法tbmallf2e
 
天祁《交易线》
天祁《交易线》天祁《交易线》
天祁《交易线》tbmallf2e
 
Tmall demo environment
Tmall demo environmentTmall demo environment
Tmall demo environmenttbmallf2e
 
Tm快报201202 daqiu
Tm快报201202 daqiuTm快报201202 daqiu
Tm快报201202 daqiutbmallf2e
 
快速开发Css
快速开发Css快速开发Css
快速开发Csstbmallf2e
 
Google Chrome Developer Tools
Google Chrome Developer ToolsGoogle Chrome Developer Tools
Google Chrome Developer Toolstbmallf2e
 
Hello Html5 Games
Hello Html5 GamesHello Html5 Games
Hello Html5 Gamestbmallf2e
 
Velocity beijing 2011 xianyu
Velocity beijing 2011   xianyuVelocity beijing 2011   xianyu
Velocity beijing 2011 xianyutbmallf2e
 
Chrome中的创意和应用
Chrome中的创意和应用Chrome中的创意和应用
Chrome中的创意和应用tbmallf2e
 
2011 04-19 html5 css3 及脚本
2011 04-19 html5 css3 及脚本2011 04-19 html5 css3 及脚本
2011 04-19 html5 css3 及脚本tbmallf2e
 
如何为非文本内容添加合适的替代信息
如何为非文本内容添加合适的替代信息如何为非文本内容添加合适的替代信息
如何为非文本内容添加合适的替代信息tbmallf2e
 
续签无纸化项目总结
续签无纸化项目总结续签无纸化项目总结
续签无纸化项目总结tbmallf2e
 

Mais de tbmallf2e (20)

猫粮快报
猫粮快报猫粮快报
猫粮快报
 
618风林火山(仙快羽)
618风林火山(仙快羽)618风林火山(仙快羽)
618风林火山(仙快羽)
 
猫粮快报 金艳艳
猫粮快报 金艳艳猫粮快报 金艳艳
猫粮快报 金艳艳
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)
 
Demo review
Demo reviewDemo review
Demo review
 
猫粮快报
猫粮快报猫粮快报
猫粮快报
 
番茄工作法
番茄工作法番茄工作法
番茄工作法
 
呜龙
呜龙呜龙
呜龙
 
天祁《交易线》
天祁《交易线》天祁《交易线》
天祁《交易线》
 
Tmall demo environment
Tmall demo environmentTmall demo environment
Tmall demo environment
 
Tm快报201202 daqiu
Tm快报201202 daqiuTm快报201202 daqiu
Tm快报201202 daqiu
 
快速开发Css
快速开发Css快速开发Css
快速开发Css
 
Google Chrome Developer Tools
Google Chrome Developer ToolsGoogle Chrome Developer Tools
Google Chrome Developer Tools
 
Hello Html5 Games
Hello Html5 GamesHello Html5 Games
Hello Html5 Games
 
Velocity beijing 2011 xianyu
Velocity beijing 2011   xianyuVelocity beijing 2011   xianyu
Velocity beijing 2011 xianyu
 
Mvc
MvcMvc
Mvc
 
Chrome中的创意和应用
Chrome中的创意和应用Chrome中的创意和应用
Chrome中的创意和应用
 
2011 04-19 html5 css3 及脚本
2011 04-19 html5 css3 及脚本2011 04-19 html5 css3 及脚本
2011 04-19 html5 css3 及脚本
 
如何为非文本内容添加合适的替代信息
如何为非文本内容添加合适的替代信息如何为非文本内容添加合适的替代信息
如何为非文本内容添加合适的替代信息
 
续签无纸化项目总结
续签无纸化项目总结续签无纸化项目总结
续签无纸化项目总结
 

前端性能优化&测试

  • 2. !important • 80% 页面性能在前端 • 时间就是金钱 • 4s 原则
  • 3. 性能指标 • TTFB (Time to First Byte) • TTSR (Time to Start Render) – TTFB – TTDD (Time To Document Download) – TTHE (Time To Head End) • TTDC (Time to Document Complete) – TTSR – TTDC (Time to Dom Created) – TTST (Time to Script) • TTFL (Time to Fully Loaded) • TTI (Time to Interact)
  • 4. 如何度量 1 . 前后端协同 后端接收到请求记录时间并写入页面,前端onload 记录时间算差 值。 存在的问题: - 服务器和客户端时间不一致,需要处理。
  • 5. 2. 纯前端实现 存在的问题: - 忽略了请求相关的时间,得到数据比真实数据要小。
  • 6. 3. 前一个页面和当前页面协同 前一个页面点击链接是,记录时间,当前页面onload时间相减。 存在的问题: - 实现较为复杂,第一次自主访问的页面无法测试。
  • 7. 4. 使用浏览器插件或者工具栏 - google toolbar 5. 使用客户端软件 - 哈勃 - webpagetest 存在的问题: - 通用性小,覆盖面积小。
  • 10. 优化Tips • Yahoo 34 条军规 http://wiki.ued.taobao.net/doku.php?id=ued.bj:f2e:34rule • 图片优化 – 无损压缩 – 格式选择 http://ued.taobao.com/blog/2010/12/10/jpg_png/
  • 11. • Js&css顺序 – 资源是否下载依赖JS执行结果 – JS执行依赖Css最新渲染 – 现代浏览器存在prefetch 优化 http://hikejun.com/blog/2012/02/02/js%E5%92%8Ccss%E7%9A%84%E9%A1%BA%E5%B A%8F%E5%85%B3%E7%B3%BB/
  • 12. • reflow & repaint - reflow 对于 DOM 结构中的各个元素都有自己的盒子 (模型), 这些都需要浏览 器根据各种样式 (浏览器的, 开发人员定义的等) 来计算并根据计算结果将元素 放到它该出现的位置, 这个过程称之为 reflow; - repaint 当各种盒子的位置, 大小以及其他属性, 例如颜色, 字体大小等都确定 下来后, 浏览器于是便把这些元素都按照各自的特性绘制了一遍, 于是页面的内 容出现了, 这个过程称之为repaint.
  • 13. - 导致reflow 和 repaint 的因素 - 添加或删除可见的DOM元素 - 元素位置改变 - 元素尺寸改变 - 内容改变 - 浏览器窗口改变
  • 14. - 避免reflow 和 repaint 方法 - 尽可能限制reflow 的影响范围 - 集中改变样式 - 实现元素动画,尽量使之脱离文档流,不影响其他元素 - 避免频繁操作DOM - Dom操作时可以先移除或隐藏,操作完再插入、显示。 - 创建多个DOM节点,一次性插入
  • 15. • Javascript性能优化 – 使用局部变量 – 缓存频繁使用的对象、数组及相关属性值 – 使脚本尽可能少的运行。 - 短路表达式应用 , a && b||c - 基于事件处理相应的处理方法 - 惰性函数
  • 16. - 流程控制 - if语句中,经常会发生的放在靠上位置。 - If条件为连续的区间可以使用二分法拆分 - 离散的判断,可以使用switch - UI线程 - Js 和 UI更新共享进程 - 100 ms 原则 - 使用定时器让出控制权
  • 17. • css 性能优化 - css渲染时间测试 - 优化建议 · 减少选择符层次 · 慎用通选择符 * · 慎用滤镜
  • 18. • 感官优化 响应时间与用户体验 0.1 s - 感觉很顺畅 1.0s - 用户操作可能会受影响,并能感觉到不顺畅 10s - 对用户影响比较严重,需要有进度提示,用户会感觉到沮 丧。
  • 21. tools • Firebug • Chrome 开发者工具 • Ylsow • pagespeed • Fiddler • Httpwatch • dynatrace
  • 22. • 内部平台 – 阿里度 http://alibench.taobao.com/index.php – POC系统 (comming soon…) – TaoBao ShowSlow http://showslow.taobao.net/ – 鱼眼系统 http://wpo.taobao.net/ – 页面显微镜 http://analytics.corp.taobao.com – 淘数据 http://dw.taobao.ali.com/index.htm – 数据门户 http://sg.admin.taobao.org/report/index.htm
  • 23. • 外部平台 – webpagetest http://webpagetest.org/ – httparchive http://www.httparchive.org/index.php