SlideShare uma empresa Scribd logo
1 de 32
Web 标准化交流会 网站性能优化
导  读 ,[object Object],[object Object],[object Object],[object Object]
无阻塞加载 JavaScript ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],无阻塞加载 JavaScript 常用的几种方法:
无阻塞加载 JavaScript ,[object Object],Ajax callback  eval   应用: Prototype.js Ruby on rails
无阻塞加载 JavaScript ,[object Object],Ajax callback  var xhrObj = getXHRObject();  // 上个例子中定义的对象 xhrObj.onreadystatechange = function() { if ( xhrObj.readyState == 4 ) { var scriptElem = document.createElement('script'); document.getElementsByTagName('head')[0] .appendChild(scriptElem); scriptElem.text = xhrObj.responseText; } }; xhrObj.open('GET', 'A.js', true);  // 必须同域 xhrObj.send(''); script 标签
无阻塞加载 JavaScript ,[object Object],嵌入 iframe 获取 HTML   <!--parent--> <iframe src='A.html' width=0 height=0 frameborder=0 id=frame1> </iframe> 与父页面交互   //iframe // access the main page from within the iframe using &quot;parent&quot; function createNewDiv() { var newDiv = parent.document.createElement('div'); parent.document.body.appendChild(newDiv); } //parent document.getElementById('frame1').contentWindow.createNewDiv
无阻塞加载 JavaScript ,[object Object],script 标签 设置 src   var scriptElem = document.createElement('script'); scriptElem.src = 'http://anydomain.com/A.js'; var head = document.getElementsByTagName('head')[0]; head.appendChild(scriptElem); 可跨域 应用: JSONP
无阻塞加载 JavaScript ,[object Object],<script  defer  src='A.js'></script> IE Only ,[object Object],[object Object],[object Object]
无阻塞加载 JavaScript ,[object Object],document.write(&quot;<script type='text/javascript' src='A.js'><script>&quot;); ,[object Object],[object Object]
无阻塞加载 JavaScript ,[object Object],初始化 worker postMessage 后台运行脚本  var worker = new Worker(&quot;test.js&quot;); // Watch for messages from the worker worker.onmessage = function(e){ // The message from the client: alert(e.data); }; function start(params) { worker.postMessage(&quot;start &quot; + params); } start('world'); postMessage 返回结果 //test.js onmessage = function(e){ var data = e.data.split(' '); if ( data[0] === &quot;start&quot; ) { // Do some computation var ret = 'Hello ' + data[1]; done(ret) } }; function done(ret){ // Send back the results to the parent page postMessage(ret); } onmessage 接收结果 实验阶段
多域名解决最大连接数限制  ,[object Object],IE6 瀑布图
[object Object],Firefox 瀑布图   最大 6 个连接 多域名解决最大连接数限制
多域名解决最大连接数限制 ,[object Object],[object Object]
多域名解决最大连接数限制 ,[object Object],img.sina.com.cn img.sina.com.cn img1.sina.com.cn N 个连接数 N*2 个连接数
多域名解决最大连接数限制 ,[object Object],完美的并行下载 8s  4s
多域名解决最大连接数限制 ,[object Object],[object Object],[object Object],[object Object],[object Object],Steve Souders On average, using two aliases is best.
多域名解决最大连接数限制 多域名性能比较
多域名解决最大连接数限制 ,[object Object],[object Object],[object Object]
避免空地址元素 ,[object Object],= Empty src 创建元素时指定一个空的资源地址  script   input   embed   object iframe   img   空地址 标签
[object Object],[object Object],} 空路径 图片 避免空路径 How?
危害 ,[object Object],避免空路径 IE: http://www.sina.com.cn/test/  No IE: http://www.sina.com.cn/test/1.php  请求的目标地址不一样   http://www.sina.com.cn/test/1.php
[object Object],危害 避免空路径 Web Server 1x 空路径元素 1x 压力成倍增加 2x +
解决方法 避免空路径 ,[object Object],[object Object],[object Object]
用 YSlow 检查 避免空路径 制定新规则 ( Avoid empty src or href  ) 新规则检查结果 1 2
相关 Web 标准 避免空路径 ,[object Object],[object Object],√ Opera X Safari X Chrome √ Firefox X IE
编码心得 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],编码心得 if ( !String.prototype.trim ) { String.prototype.trim = function() { return this.replace(/^+/, '').replace(/+$/, ''); } } 类似的有 … … setItem, getItem, removeItem localStorage parse, stringify JSON forEach, indexOf, lastIndexOf, filter, every, map, some Array
编码心得 ,[object Object],(function() { //const var UNDEFINED; var name; // 方法一 if ( typeof name === 'undefined')  { //do something } // 方法二 if ( name === UNDEFINED ) { //do something } })();
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],编码心得
广告时间 ,[object Object],[object Object],[object Object],[object Object],[object Object],Lady first
[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
 
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
taobao.com
 
Asp net (1)
Asp net  (1)Asp net  (1)
Asp net (1)
Kyle Lin
 
jsp基础速成精华讲解
jsp基础速成精华讲解jsp基础速成精华讲解
jsp基础速成精华讲解
wensheng wei
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash Shell
LI Daobing
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
 

Mais procurados (20)

Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
 
Java soap
Java soapJava soap
Java soap
 
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
 
Asp net (1)
Asp net  (1)Asp net  (1)
Asp net (1)
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
第一次用 PHPUnit 寫測試就上手
第一次用 PHPUnit 寫測試就上手第一次用 PHPUnit 寫測試就上手
第一次用 PHPUnit 寫測試就上手
 
Berserk js
Berserk jsBerserk js
Berserk js
 
JavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization SkillsJavaScript 80+ Programming and Optimization Skills
JavaScript 80+ Programming and Optimization Skills
 
jsp基础速成精华讲解
jsp基础速成精华讲解jsp基础速成精华讲解
jsp基础速成精华讲解
 
Zoo keeper
Zoo keeperZoo keeper
Zoo keeper
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
 
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
 
RESTful API Design
RESTful API DesignRESTful API Design
RESTful API Design
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash Shell
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
前端MVVM框架安全
前端MVVM框架安全前端MVVM框架安全
前端MVVM框架安全
 
高性能LAMP程序设计
高性能LAMP程序设计高性能LAMP程序设计
高性能LAMP程序设计
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
 
走马观花— Haskell Web 开发
走马观花— Haskell Web 开发走马观花— Haskell Web 开发
走马观花— Haskell Web 开发
 

Destaque

Touch开发应届生培训
Touch开发应届生培训Touch开发应届生培训
Touch开发应届生培训
Zhi Zhong
 
邮件沟通技巧
邮件沟通技巧邮件沟通技巧
邮件沟通技巧
Zhi Zhong
 
The art of Lita Cabellut - Dephts of Humanity
The art of Lita Cabellut - Dephts of HumanityThe art of Lita Cabellut - Dephts of Humanity
The art of Lita Cabellut - Dephts of Humanity
Babylon Magazine
 
Icfcc conference real
Icfcc conference realIcfcc conference real
Icfcc conference real
UM
 
单页面开发遇到的一些问题
单页面开发遇到的一些问题单页面开发遇到的一些问题
单页面开发遇到的一些问题
Zhi Zhong
 
Getting started with fiddler
Getting started with fiddlerGetting started with fiddler
Getting started with fiddler
Zhi Zhong
 
2014 Touch RD Summary & Work Report
2014 Touch RD Summary & Work Report2014 Touch RD Summary & Work Report
2014 Touch RD Summary & Work Report
Zhi Zhong
 

Destaque (16)

Exact Online Onderwijs
Exact Online OnderwijsExact Online Onderwijs
Exact Online Onderwijs
 
Touch开发应届生培训
Touch开发应届生培训Touch开发应届生培训
Touch开发应届生培训
 
Bm#11 Arena
Bm#11  ArenaBm#11  Arena
Bm#11 Arena
 
Introduce Fiddler Tips and Tricks
Introduce Fiddler Tips and TricksIntroduce Fiddler Tips and Tricks
Introduce Fiddler Tips and Tricks
 
邮件沟通技巧
邮件沟通技巧邮件沟通技巧
邮件沟通技巧
 
The art of Lita Cabellut - Dephts of Humanity
The art of Lita Cabellut - Dephts of HumanityThe art of Lita Cabellut - Dephts of Humanity
The art of Lita Cabellut - Dephts of Humanity
 
Icfcc conference real
Icfcc conference realIcfcc conference real
Icfcc conference real
 
David Villa, Laduma Hunter
David Villa, Laduma HunterDavid Villa, Laduma Hunter
David Villa, Laduma Hunter
 
Html5不只是个传说
Html5不只是个传说Html5不只是个传说
Html5不只是个传说
 
单页面开发遇到的一些问题
单页面开发遇到的一些问题单页面开发遇到的一些问题
单页面开发遇到的一些问题
 
iOS 8 and iPhone 6 for web developers and designers
iOS 8 and iPhone 6 for web developers and designersiOS 8 and iPhone 6 for web developers and designers
iOS 8 and iPhone 6 for web developers and designers
 
Getting started with fiddler
Getting started with fiddlerGetting started with fiddler
Getting started with fiddler
 
The flaites
The flaitesThe flaites
The flaites
 
2014 Touch RD Summary & Work Report
2014 Touch RD Summary & Work Report2014 Touch RD Summary & Work Report
2014 Touch RD Summary & Work Report
 
Why use linkedin
Why use linkedinWhy use linkedin
Why use linkedin
 
Animals In Danger
Animals In DangerAnimals In Danger
Animals In Danger
 

Semelhante a 钟志 第八期Web标准化交流会

香港六合彩
香港六合彩香港六合彩
香港六合彩
aaveow
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methods
yiditushe
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
QLeelulu
 
【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization
tbosstraining
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
Frank Xu
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
 

Semelhante a 钟志 第八期Web标准化交流会 (20)

香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methods
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
 
EventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianEventProxy introduction - JacksonTian
EventProxy introduction - JacksonTian
 
Event proxy introduction
Event proxy introductionEvent proxy introduction
Event proxy introduction
 
Jsp
JspJsp
Jsp
 
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
 
【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization
 
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型
 
Web base 吴志华
Web base 吴志华Web base 吴志华
Web base 吴志华
 

钟志 第八期Web标准化交流会