SlideShare a Scribd company logo
1 of 74
移动端Web   发性能优化实践
About me
张明
小米-米聊 前端工程师



Miliao: 500520
QQ: 19360348
@mingelz
米世界构想
米世界构想
• 米聊客户端提供WebView
米世界构想
• 米聊客户端提供WebView
• 使用HTML/CSS/JS构建App
米世界构想
• 米聊客户端提供WebView
• 使用HTML/CSS/JS构建App
• 随时升级App,不用等客户端更新
米世界构想
• 米聊客户端提供WebView
• 使用HTML/CSS/JS构建App
• 随时升级App,不用等客户端更新
• 不占用客户端体积,却提供无限可能
遇到的问题
遇到的问题

  2G基站连接时间长
遇到的问题
2G环境数据下载缓慢
     2G基站连接时间长
遇到的问题
2G环境数据下载缓慢
     2G基站连接时间长
    已经缓存的数据仍然需要检验
遇到的问题
2G环境数据下载缓慢
     2G基站连接时间长
    已经缓存的数据仍然需要检验
  大量资源,HTTP请求过多
遇到的问题
2G环境数据下载缓慢
     2G基站连接时间长
    已经缓存的数据仍然需要检验
  大量资源,HTTP请求过多
        ......
优化!
• 图片Sprites
• 使用CSS3模拟图片
• 使用BASE64
• 使用“#模式”
• 本地存储 & 离线存储
图片Sprites
图片Sprites

• 使用::before和::after伪元素,Sprites中的
 图片排版可以更紧         ,图片体积更小,
 HTML更简洁
图片Sprites
图片Sprites
li::before{
    content:’20’;display:block;
    position:absolute;z-index:2;left:2px;top:5px;
    width:40px;height:40px;overflow:hidden;
    background:url(sprites.png) no-repeat -30px -60px;
}
使用CSS3模拟图片
使用CSS3模拟图片
• 一些格纹背景图片
• 锯齿图
• 进度条
• 投影、光晕
• ……
格纹背景
格纹背景
格纹背景
锯齿
锯齿
先将单元图形分解:
锯齿
锯齿
进度条
进度条
进度条
增加CSS动画
进度条
增加CSS动画
进度条
进度条
进度条
投影、光晕
投影、光晕
.halo{
  position:absolute;z-index:-1;left:0;top:-2000px;
  width:200px;height:160px;
  border-radius:100px;
  box-shadow:200px 2250px 50px rgba(255, 100, 0, .3);
}
使用BASE64
使用BASE64
<img src="data:image/gif;base64,R0lGODdhaQBwAPcAAKW1hK21hK21jK29hLW9hK21lK29jLW9jLXG
+hL21lMa9hLW9lMa9jLW9nL3GjLXGlL29lM69hMa9lM69jL3GlL29nL3GnMbGlL29pc7GjM7GlNbGjL3Gpc
bOlMbGpc7GnNbGlL3GtdbGnMbOpcbGrc7GpdbOnN7OlMbOrc7Grc7OpcbGtcbOtd7OnNbOpc7Ord
QQU2EGRlhBpDVDacFAQsKRMRGiUnvTTS4Ll3fqEVwRclNRvwtiBMnbJGS8BcnmTsiufZiCXISpaTAQZ4l
JgrgzuXFAmxNnLFx4XGwVGYhej95BZitkFPjjdhtpnnQgY6hm0sqAEXI7EANouufTxnUSW2agTxM4ZkiJA
YUcPqsDw31pknJTQEAwgjiZ8IvfZIAeHt6oT29dlAvYQgjwGv8TOolg0CA5zVXe9R3jKS3j3giFImmhMibllz
ve2IL2gRAhAFRhsLhYCvOHZrtSCy5x9dALAWCI6RIjfO+IQvE6oNA8qGyzb8xIH/eWP7Sg6DdHeqS/
55+MzANnHHvah/84CbJ/7mDf2iau3/O+VS3zWB38pXk988veuN6I7X+/Ljz7foT/9rVNe+s2nfvat3/
XqH575k+/+aPa/j/3wK9/7lDf+8NUP/PULv/3wL/775e/7+LOf/qp3f/3xz/vj59/+83d/AhiABLh/A7h/5Zd33Hd
+43d96Cd+5gd+Ckh+D8iAEZiAQ6d9F1iBEpiBC9iBQheCz/eBGCiCGjiBdBEQADs=" />




*因编码后文本太长,我手动删除了一部分内容,以上编码无法解码为真实图片
使用BASE64
• BASE64就是将二进制数据重新编码为文
 本数据

• BASE64只使用[a-z]、[A-Z]、[0-9]、+、/
 共64个字符(另外可能有1到2个 = )

• BASE64后文件体积至少增大1/3
BASE64原理简析
BASE64原理简析
w3c
BASE64原理简析
w3c

01110111 00110011 01100011
BASE64原理简析
w3c

01110111 00110011 01100011

011101 110011 001101 100011
BASE64原理简析
w3c

01110111 00110011 01100011

011101 110011 001101 100011

00011101 00110011 00001101 00100011
BASE64原理简析
w3c

01110111 00110011 01100011

011101 110011 001101 100011

00011101 00110011 00001101 00100011

29       51       13          35
BASE64原理简析
w3c

01110111 00110011 01100011

011101 110011 001101 100011

00011101 00110011 00001101 00100011

29       51       13          35

dzNj
使用BASE64
•      每个HTTP最小传输单位是包,每个包最大约为
       1500B,在这个范围内使用BASE64是最好的

•           面端浏览器,支持对图片、字体、音频等文件
       BASE64后,嵌入页面中使用(视频暂未测试)

•      移动端浏览器,暂不支持音频的BASE64(字体、
       视频暂未测试)
ref: http://oldj.net/article/a-gzipping-exception/
#(sharp)模式
#(sharp)模式
                                    host
http://www.xiaomi.com:8080/search.php?w=abc#footer
 protocol                                  port   pathname   search   hash
                           hostname

                                           href




            *本图参考自《ppk on javascript》一书
#(sharp)模式
                                    host
http://www.xiaomi.com:8080/search.php?w=abc#footer
 protocol                                  port   pathname   search   hash
                           hostname

                                           href




            *本图参考自《ppk on javascript》一书
#(sharp)模式
• url hash不会被发送至服务端
• url hash的变更不会发起网络请求
• google 与 twitter 定义 #! 之后的内容可以
 被索引
 http://twitter.com/#!/mingelz
#(sharp)模式
#(sharp)模式
之前的URL形式:
http://appurl.com/appname?locale=zh_CN&appid=123&uid=456&param=789
#(sharp)模式
之前的URL形式:
http://appurl.com/appname?locale=zh_CN&appid=123&uid=456&param=789




现在的URL形式:
http://appurl.com/appname?locale=zh_CN#appid=123&uid=456&param=789
#(sharp)模式
• HTML5中新增了 onhashchange 事件,用
 于监听hash变化

• hash的变化支持前进后退按钮
• 对应的还有CSS伪类 :target
本地存储
本地存储
本地存储
• localStorage 针对域的永久存储方案
• sessionStorage 针对会话的临时存储方案
• 在无域的情况下,仍然可以保证 个不
 同页面无法读取对方数据
本地存储

• 均只支持存储字符串
★ JSON.parse( string )
★ JSON.stringify( json )
本地存储
本地存储
•   存储:localStorage.setItem(“key”, “value”)
本地存储
•   存储:localStorage.setItem(“key”, “value”)


•   读取:localStorage.getItem(“key”)
本地存储
•   存储:localStorage.setItem(“key”, “value”)


•   读取:localStorage.getItem(“key”)


•   删除:localStorage.removeItem(“key”)
本地存储
•   存储:localStorage.setItem(“key”, “value”)


•   读取:localStorage.getItem(“key”)


•   删除:localStorage.removeItem(“key”)


•   清空:localStorage.clear()
本地存储
•   存储:localStorage.setItem(“key”, “value”)


•   读取:localStorage.getItem(“key”)


•   删除:localStorage.removeItem(“key”)


•   清空:localStorage.clear()


•   获取存储数据数量:localStorage.length
本地存储
•   存储:localStorage.setItem(“key”, “value”)


•   读取:localStorage.getItem(“key”)


•   删除:localStorage.removeItem(“key”)


•   清空:localStorage.clear()


•   获取存储数据数量:localStorage.length


•   遍历:localStorage.key(i)
本地存储

• 当键值改变或者被删除时,会触发
 onstorage 事件
离线存储
离线存储
离线存储
• MIME:text/cache-manifest
• <html manifest=“cache.manifest”>
• CACHE
• NETWORK
• FALLBACK
离线存储

• applicationCache 事件
 ★ applicationCache.status
 ★ applicationCache.update()
 ★ applicationCache.swapCache()
我们仍在探索
• 这只是我们正在使用的一部分优化方案
• 仍有同学在Web前端、服务器端、客户
 端对无线性能优化做出各   尝试

• 是的,我们仍在探索
更多交流


• 无限前端QQ群:24495692
谢谢

More Related Content

What's hot

Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2yiming he
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发leneli
 
使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度kumawu
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案美团技术团队
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践jay li
 
自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!洧杰 廖
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器jay li
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Designjay li
 
Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)光风
 
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例Bob Chao
 
2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_frameworkLorn Jhu
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送yongboy
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染Ailsa126
 
網頁設計 - Bootstrap前端框架
網頁設計 - Bootstrap前端框架網頁設計 - Bootstrap前端框架
網頁設計 - Bootstrap前端框架Vincent Chi
 
Web coding principle
Web coding principleWeb coding principle
Web coding principleZongYing Lyu
 
前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关jay li
 

What's hot (20)

Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发
 
使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度使用Bigpipe提升浏览速度
使用Bigpipe提升浏览速度
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
 
自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
 
Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)
 
vmarket in action
vmarket in actionvmarket in action
vmarket in action
 
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
給 FLOSS 社群網站管理志工的網站分析入門 - 以 Google Analytics 為例
 
2018 8 18_play_framework
2018 8 18_play_framework2018 8 18_play_framework
2018 8 18_play_framework
 
HTML 語法教學
HTML 語法教學HTML 語法教學
HTML 語法教學
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
 
網頁設計 - Bootstrap前端框架
網頁設計 - Bootstrap前端框架網頁設計 - Bootstrap前端框架
網頁設計 - Bootstrap前端框架
 
Web coding principle
Web coding principleWeb coding principle
Web coding principle
 
前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关前端调试工具,编码相关,性能相关
前端调试工具,编码相关,性能相关
 

Viewers also liked

Web图片优化
Web图片优化Web图片优化
Web图片优化明 李
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践longhao
 
潘杰茂_网络图像优化
潘杰茂_网络图像优化潘杰茂_网络图像优化
潘杰茂_网络图像优化Webrebuild
 
2 好照片-chengdu
2 好照片-chengdu2 好照片-chengdu
2 好照片-chengdu36Kr.com
 
重构 这一路走来
重构 这一路走来重构 这一路走来
重构 这一路走来Webrebuild
 
Optimizing Your Site
Optimizing Your SiteOptimizing Your Site
Optimizing Your Sitertvenge
 
Image optimization for Sina.com
Image optimization for Sina.comImage optimization for Sina.com
Image optimization for Sina.comyouhua tang
 
Benefits of Image Optimization | B Line Marketing
Benefits of Image Optimization | B Line MarketingBenefits of Image Optimization | B Line Marketing
Benefits of Image Optimization | B Line MarketingB Line Marketing
 
Instructivo para ingresar a class marker2
Instructivo para ingresar a class marker2Instructivo para ingresar a class marker2
Instructivo para ingresar a class marker2Juank Burgos
 
Image Matting Using Linear Optimization
Image Matting Using Linear OptimizationImage Matting Using Linear Optimization
Image Matting Using Linear OptimizationConrad Triquell
 
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersOswald Campesato
 
Gráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVGGráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVGHelder da Rocha
 
Css性能优化
Css性能优化Css性能优化
Css性能优化linxz
 
Image optimization
Image optimizationImage optimization
Image optimizationjasonaldein
 
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developerjay li
 
Image and sound optimization
Image and sound optimizationImage and sound optimization
Image and sound optimizationdmydlack
 
[TW] CSS Files Optimization
[TW] CSS Files Optimization[TW] CSS Files Optimization
[TW] CSS Files OptimizationBogdan Gaza
 
Mobile and web optimization + Drupal
Mobile and web optimization + DrupalMobile and web optimization + Drupal
Mobile and web optimization + DrupalKirill Borzov
 

Viewers also liked (20)

Web图片优化
Web图片优化Web图片优化
Web图片优化
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
 
潘杰茂_网络图像优化
潘杰茂_网络图像优化潘杰茂_网络图像优化
潘杰茂_网络图像优化
 
2 好照片-chengdu
2 好照片-chengdu2 好照片-chengdu
2 好照片-chengdu
 
重构 这一路走来
重构 这一路走来重构 这一路走来
重构 这一路走来
 
Optimizing Your Site
Optimizing Your SiteOptimizing Your Site
Optimizing Your Site
 
Image optimization for Sina.com
Image optimization for Sina.comImage optimization for Sina.com
Image optimization for Sina.com
 
Image Optimization
Image OptimizationImage Optimization
Image Optimization
 
Benefits of Image Optimization | B Line Marketing
Benefits of Image Optimization | B Line MarketingBenefits of Image Optimization | B Line Marketing
Benefits of Image Optimization | B Line Marketing
 
Instructivo para ingresar a class marker2
Instructivo para ingresar a class marker2Instructivo para ingresar a class marker2
Instructivo para ingresar a class marker2
 
Image Matting Using Linear Optimization
Image Matting Using Linear OptimizationImage Matting Using Linear Optimization
Image Matting Using Linear Optimization
 
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for Beginners
 
Gráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVGGráficos Vetoriais na Web com SVG
Gráficos Vetoriais na Web com SVG
 
Css性能优化
Css性能优化Css性能优化
Css性能优化
 
Image optimization
Image optimizationImage optimization
Image optimization
 
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developer
 
D3.js and SVG
D3.js and SVGD3.js and SVG
D3.js and SVG
 
Image and sound optimization
Image and sound optimizationImage and sound optimization
Image and sound optimization
 
[TW] CSS Files Optimization
[TW] CSS Files Optimization[TW] CSS Files Optimization
[TW] CSS Files Optimization
 
Mobile and web optimization + Drupal
Mobile and web optimization + DrupalMobile and web optimization + Drupal
Mobile and web optimization + Drupal
 

Similar to 移动端Web开发性能优化实践

Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送yongboy
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
AJAX Search & Cross Domain Survey
AJAX Search & Cross Domain SurveyAJAX Search & Cross Domain Survey
AJAX Search & Cross Domain Surveyfirestoke
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methodsyiditushe
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集zhen chen
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展agen
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战fengmk2
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_finalWei Sun
 
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南Shengyou Fan
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京Joseph Chiang
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用luolonghao
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展agen
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战fengmk2
 

Similar to 移动端Web开发性能优化实践 (20)

Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
 
Html5
Html5Html5
Html5
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
AJAX Search & Cross Domain Survey
AJAX Search & Cross Domain SurveyAJAX Search & Cross Domain Survey
AJAX Search & Cross Domain Survey
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methods
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用富文本编辑器在互联网上的应用
富文本编辑器在互联网上的应用
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
 

移动端Web开发性能优化实践

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n