SlideShare uma empresa Scribd logo
1 de 62
YUI Simple Introduction
前端工程师 Front-end Engineer
什么是前端工程师?
什么是前端工程师? ,[object Object],[object Object],[object Object]
前端流程
做前端很简单?
非也 !
 
掌握技能 ,[object Object]
掌握技能 ,[object Object],[object Object]
掌握技能 ,[object Object],[object Object],[object Object]
掌握技能 ,[object Object],[object Object],[object Object],[object Object]
掌握技能 ,[object Object],[object Object],[object Object],[object Object],[object Object]
掌握技能 ,[object Object],[object Object],[object Object],[object Object],[object Object],572
 
  国际化、 可用性 、本地化、视觉设计、 易用性 、信息架构、 安全 、流程化、 性能 、标准、设备、可移植性  ... ...
 
YUI
YUI 是一把彪悍的军刀 http://developer.yahoo.com/yui
怎样自学成才 Examples: http://developer.yahoo.com/yui/examples/ API Docs: http://developer.yahoo.com/yui/docs/ Team Blog: http://yuiblog.com/
今天我们要讨论的 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
YAHOO.lang 为 YUI 提供语言级的工具和扩展 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
YAHOO.lang YAHOO.lang.trim()   // 去除字符串两端的空格 <script  type =&quot; text/javascript &quot;>      var  str = &quot;   Tao Bao   &quot; ;      YAHOO.lang.trim(str);  //return &quot;Tao Bao&quot; </script>
YAHOO.lang YAHOO.lang.trim()   // 去除字符串两端的空格 <script  type =&quot; text/javascript &quot;>      var  str = &quot;   Tao Bao   &quot; ;      YAHOO.lang.trim(str);  //return &quot;Tao Bao&quot; </script> <script  type =&quot; text/javascript &quot;>      var  str = [&quot;   Tao Bao   &quot;] ;      YAHOO.lang.trim(str);  //return [&quot;  Tao Bao  &quot;] </script>
YAHOO.lang YAHOO.lang.merge()   // 属性合并 <script  type =&quot; text/javascript &quot;>      var  p1 = {name: null ,age:0,sex:&quot; -> &quot;} ;      var  p2 = {name:&quot; ada &quot;,age:18} ;      var  p3 = YAHOO.lang.merge(p1,p2);       //p3 = {name:&quot;ada&quot;,age:18,sex:&quot;->&quot;} </script>
YAHOO.lang 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.lang.html
YAHOO.util.Dom 展现军刀实力的时候到了 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
YAHOO.util.Dom YAHOO.util.Dom.get()   // 根据 ID 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      YAHOO.util.Dom.get(&quot; J_Id &quot;) ;  // return HTMLElement </script>
YAHOO.util.Dom YAHOO.util.Dom.get()   // 根据 ID 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      YAHOO.util.Dom.get(&quot; J_Id &quot;) ;  // return HTMLElement </script> <script  type =&quot; text/javascript &quot;>      var  ids = [&quot; J_Id1 &quot;,&quot; J_Id2 &quot;,&quot; J_Id3 &quot;] ;      YAHOO.util.Dom.get(ids) ;      // return HTMLElement[] </script>
YAHOO.util.Dom YAHOO.util.Dom.getElemetsByClassName()    // 根据 Class 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.getElementsByClassName(&quot; J_Class &quot;, &quot;LI&quot; , &quot;J_Root&quot; ) ;       // return HTMLElement[] </script>
YAHOO.util.Dom YAHOO.util.Dom.getAncestorByClassName()    // 获取匹配 Class 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.getAncestorByClassName(&quot; J_Child &quot;,&quot; J_Parent &quot;) ;       // return HTMLElement </script>
YAHOO.util.Dom YAHOO.util.Dom.getAncestorByClassName()    // 获取匹配 Class 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.getAncestorByClassName(&quot; J_Child &quot;,&quot; J_Parent &quot;) ;       // return HTMLElement </script> // 获取匹配 TagName 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.getAncestorByTagName(&quot; J_Child &quot;,&quot; UL &quot;) ;       // return HTMLElement(UL) </script>
YAHOO.util.Dom YAHOO.util.Dom.add [remove] Class()    // 方便的操作元素的 class <style  type =&quot; text/css &quot;> .hidden { display :none;} </style> <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.addClass(&quot; J_Id &quot;,&quot; hidden &quot;) ;  // 将元素隐藏 </script>
YAHOO.util.Dom YAHOO.util.Dom.add [remove] Class()    // 方便的操作元素的 class <style  type =&quot; text/css &quot;> .hidden { display :none;} </style> <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.addClass(&quot; J_Id &quot;,&quot; hidden &quot;) ;  // 将元素隐藏 </script> <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      var  lists = Dom.getElementsByClassName(&quot; J_List &quot;) ;      // 将所有 class 中包含 J_List 的元素隐藏      Dom.addClass(lists ,&quot; hidden &quot;) ;  </script>
YAHOO.util.Dom 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html
YAHOO.util.Event 事件集中营。调兵遣将尽在其中。 ,[object Object],[object Object],[object Object],[object Object],[object Object]
YAHOO.util.Dom YAHOO.util.Dom.onDOMReady()    // 页面载入完成后执行 <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.onDomReady(init) ;      function  init(){          //init code      } </script>
YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Btn &quot;,&quot; click &quot;,foo) ;      function  foo(e){          alert(&quot; 别摸我 &quot;) ;      } </script>
YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <button  id =&quot; J_Btn1 &quot;  class =&quot; J_Btn &quot;> 按钮 1</button> <button  id =&quot; J_Btn2 &quot;  class =&quot; J_Btn &quot;> 按钮 2</button> <button  id =&quot; J_Btn3 &quot;  class =&quot; J_Btn &quot;> 按钮 3</button>
YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <button  id =&quot; J_Btn1 &quot;  class =&quot; J_Btn &quot;> 按钮 1</button> <button  id =&quot; J_Btn2 &quot;  class =&quot; J_Btn &quot;> 按钮 2</button> <button  id =&quot; J_Btn3 &quot;  class =&quot; J_Btn &quot;> 按钮 3</button> <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ,Dom = YAHOO.util.Dom ;      var  btns = [&quot; J_Btn1 &quot;,&quot; J_Btn2 &quot;,&quot; J_Btn3 &quot;] ;      //var btns = Dom.getElementsByClassName(&quot;J_Btn&quot;) ;      Event.on(btns,&quot; click &quot;,foo) ;      function  foo(e){          alert(this.id) ;      } </script> Demo  http://zhuhj.googlecode.com/svn/trunk/YUIPPTDEMO/YUI-Event-array.html
YAHOO.util.Event YAHOO.util.Dom.preventDefault()   // 取消默认事件 <a  href =&quot; http://.../XX.html &quot;  id =&quot; J_Expand &quot;> 展开 </a> <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Expand &quot;,&quot; click &quot;,handleExpand) ;      function  handleExpand(e){          Event.preventDefault(e);          // other code      } </script>
YAHOO.util.Event YAHOO.util.Dom.getTarget()   // 获取事件目标元素 <div  id =&quot; J_Box &quot;  style =&quot; width:100px;height:100px;baground-color:#ff0000; &quot;>      <a  href =&quot; http://.../XX.html &quot;  id =&quot; J_Expand &quot;> 展开 </a> <div> <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Expand &quot;,&quot; click &quot;,foo) ;      function  foo(e){          alert(Event.getTarget(e).tagName) ;      } </script>
YAHOO.util.Event 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html
YAHOO.util.Connection 异步连接,省心省力 ,[object Object],[object Object],[object Object],[object Object]
YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Get 请求 <script  type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var callback = {          timeout: 30000,          success: function(r){              alert(r.responseText) ;          },          failure: function(r){              alert(r.status) ; // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ; </script>
YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Get 请求 <script  type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success:  function (r){              alert(r.responseText) ;          },          failure:  function (r){              alert(r.status) ;  // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ; </script>
YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Post 请求 <script  type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success:  function (r){              alert(r.responseText) ;          },          failure:  function (r){              alert(r.status) ;  // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; post &quot;,&quot; url &quot;,callback,&quot; name=ada&age=18 &quot;) ; </script>
YAHOO.util.Connection YAHOO.util.Connection.setForm() // 设置提交表单 <script  type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success:  function (r){              alert(r.responseText) ;          },          failure:  function (r){              alert(r.status) ;  // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.setForm(&quot;J_FormId&quot;) ;      Con.asyncRequest(&quot; post &quot;,&quot; url &quot;,callback) ; </script>
YAHOO.util.Connection YAHOO.util.Connection.abort() // 终止请求 <script  type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;Event = YAHOO.util.Event;      var  callback = {          timeout: 30000,          success:  function (r){              alert(r.responseText) ;          },          failure:  function (r){              if(r.status !== 1){alert(&quot; 请求失败 &quot;) ;}          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ;      Event.on(&quot; J_Cancel &quot;,&quot; click &quot;, function (){Con.abort() ;}) ; </script>
YAHOO.util.Connection 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Connect.html
YAHOO.util.Get 最常见的就是用来跨域请求数据 ,[object Object],[object Object],[object Object],[object Object]
YAHOO.util.Get YAHOO.util.Get.script() // 动态加载一个 js <script  type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          timeout: 30000,          chartset: &quot;GBK&quot;,          onSuccess:  function (o){},          onFailure: function(o){},          onTimeout: function(o){}      }      Get.script(&quot; http://... .../***.js &quot;,opts) ; </script>
YAHOO.util.Get YAHOO.util.Get.script() // 动态载入一个 js 文件 // 用全局变量来实现跨域获取数据 //data.js var  __DATA__ = &quot; Great Wall &quot; ; <script  type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          ... ...          onSuccess:  function (o){              try {alert(window.__DATA__) ;}  catch (e){}          }          ... ...      }      Get.script(&quot; http://... .../data.js &quot;,opts) ; </script>
YAHOO.util.Get YAHOO.util.Get.script() // 动态载入一个 js 文件 // 用 JSONP 来实现跨域获取数据 //data.js foo (&quot; Great Wall &quot;) ; <script  type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          timeout: 30000,          chartset: &quot;GBK&quot;,          onFailure: function(o){},          onTimeout: function(o){}      }      Get.script(&quot; http://... .../data.js?jsonp=foo &quot;,opts) ; </script>
YAHOO.util.Get 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Get.html
YUI 文档中文化项目 http://code.google.com/p/yui-doc-zh/
总结
总结 ,[object Object],[object Object],[object Object],[object Object],[object Object]
综合练习
Q&A
谢谢 !
[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Javascript Training
Javascript TrainingJavascript Training
Javascript Trainingbeijing.josh
 
用Jquery实现拖拽层
用Jquery实现拖拽层用Jquery实现拖拽层
用Jquery实现拖拽层yiditushe
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
前端开发之Js
前端开发之Js前端开发之Js
前端开发之Jsfangdeng
 
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四yiditushe
 

Mais procurados (7)

Javascript Training
Javascript TrainingJavascript Training
Javascript Training
 
用Jquery实现拖拽层
用Jquery实现拖拽层用Jquery实现拖拽层
用Jquery实现拖拽层
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
前端开发之Js
前端开发之Js前端开发之Js
前端开发之Js
 
Sonar java -Write Clean Code,Detect Bugs
Sonar java -Write Clean Code,Detect BugsSonar java -Write Clean Code,Detect Bugs
Sonar java -Write Clean Code,Detect Bugs
 
Web base 吴志华
Web base 吴志华Web base 吴志华
Web base 吴志华
 
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四
 

Destaque

Audit Applications Javaee Solutions Linux Ow2
Audit Applications Javaee Solutions Linux Ow2Audit Applications Javaee Solutions Linux Ow2
Audit Applications Javaee Solutions Linux Ow2OW2
 
Los santos ecuatorianos
Los santos ecuatorianosLos santos ecuatorianos
Los santos ecuatorianossolangejamelt2
 
Une_maladie_contagieuse
Une_maladie_contagieuseUne_maladie_contagieuse
Une_maladie_contagieuseourbothy
 
Demande a dieu
Demande a dieuDemande a dieu
Demande a dieuourbothy
 
Asia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaAsia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaSokmean
 
La Richardais sous la neige
La Richardais sous la neigeLa Richardais sous la neige
La Richardais sous la neigeguest63e09eed
 
Orient express
Orient expressOrient express
Orient expressfilipj2000
 
Paso a paso de hoja de calculo
Paso a paso de hoja de calculoPaso a paso de hoja de calculo
Paso a paso de hoja de calculojeferson17aranda
 
Web analytics : suivre le trafic issu des moteurs de recherche
Web analytics : suivre le trafic issu des moteurs de rechercheWeb analytics : suivre le trafic issu des moteurs de recherche
Web analytics : suivre le trafic issu des moteurs de rechercheNicolas Guillard
 
Dossier de Presse THE NARCICYST
Dossier de Presse THE NARCICYSTDossier de Presse THE NARCICYST
Dossier de Presse THE NARCICYSTFlorin
 

Destaque (20)

Audit Applications Javaee Solutions Linux Ow2
Audit Applications Javaee Solutions Linux Ow2Audit Applications Javaee Solutions Linux Ow2
Audit Applications Javaee Solutions Linux Ow2
 
Los santos ecuatorianos
Los santos ecuatorianosLos santos ecuatorianos
Los santos ecuatorianos
 
Une_maladie_contagieuse
Une_maladie_contagieuseUne_maladie_contagieuse
Une_maladie_contagieuse
 
Demande a dieu
Demande a dieuDemande a dieu
Demande a dieu
 
Asia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaAsia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in India
 
Presentación3
Presentación3Presentación3
Presentación3
 
La Richardais sous la neige
La Richardais sous la neigeLa Richardais sous la neige
La Richardais sous la neige
 
Orient express
Orient expressOrient express
Orient express
 
Logica
LogicaLogica
Logica
 
Paso a paso de hoja de calculo
Paso a paso de hoja de calculoPaso a paso de hoja de calculo
Paso a paso de hoja de calculo
 
La collection d’œuvres d’art du SCFP
La collection d’œuvres d’art du SCFPLa collection d’œuvres d’art du SCFP
La collection d’œuvres d’art du SCFP
 
Travajo empresarial
Travajo empresarialTravajo empresarial
Travajo empresarial
 
Moscow metro
Moscow metroMoscow metro
Moscow metro
 
Tema 1
Tema 1Tema 1
Tema 1
 
Web analytics : suivre le trafic issu des moteurs de recherche
Web analytics : suivre le trafic issu des moteurs de rechercheWeb analytics : suivre le trafic issu des moteurs de recherche
Web analytics : suivre le trafic issu des moteurs de recherche
 
tarea sobre la educacion
tarea sobre la educacion tarea sobre la educacion
tarea sobre la educacion
 
Dossier de Presse THE NARCICYST
Dossier de Presse THE NARCICYSTDossier de Presse THE NARCICYST
Dossier de Presse THE NARCICYST
 
Rafael
RafaelRafael
Rafael
 
Quitar fondo (1)
Quitar fondo (1)Quitar fondo (1)
Quitar fondo (1)
 
Acerca de google drive
Acerca de google driveAcerca de google drive
Acerca de google drive
 

Semelhante a YUI ─ 阿大

Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5compassdesign
 
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3edanwade
 
刘松 Cpo项目的前端实践分享
刘松 Cpo项目的前端实践分享刘松 Cpo项目的前端实践分享
刘松 Cpo项目的前端实践分享czbad
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.comThink hy
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3Adam Lu
 
揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍裕波 周
 
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.comtellyeefe
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)amd6400
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快li qiang
 
Google App Engine Devfest 200810 External
Google App Engine Devfest 200810 ExternalGoogle App Engine Devfest 200810 External
Google App Engine Devfest 200810 Externaljunyu
 
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templatecompassdesign
 
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie NorthJohn Coonen
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發Chui-Wen Chiu
 
HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)amd6400
 
HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)amd6400
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料彦波 叶
 
FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flashqizhi20
 
关于Js的跨域操作
关于Js的跨域操作关于Js的跨域操作
关于Js的跨域操作王 承石
 

Semelhante a YUI ─ 阿大 (20)

Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
Chicago EXPO Creating a Pure CSS Template in Joomla 1.5
 
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3
 
刘松 Cpo项目的前端实践分享
刘松 Cpo项目的前端实践分享刘松 Cpo项目的前端实践分享
刘松 Cpo项目的前端实践分享
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.com
 
揭秘Html5和Css3
揭秘Html5和Css3揭秘Html5和Css3
揭秘Html5和Css3
 
揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍揭秘Html5和Css3 ---- 鲁超伍
揭秘Html5和Css3 ---- 鲁超伍
 
Html5css3 go.yeefe.com
Html5css3 go.yeefe.comHtml5css3 go.yeefe.com
Html5css3 go.yeefe.com
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
 
Google App Engine Devfest 200810 External
Google App Engine Devfest 200810 ExternalGoogle App Engine Devfest 200810 External
Google App Engine Devfest 200810 External
 
Denver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS templateDenver CMS Expo Creating CSS template
Denver CMS Expo Creating CSS template
 
Creating CSS Template with Barrie North
Creating CSS Template with Barrie NorthCreating CSS Template with Barrie North
Creating CSS Template with Barrie North
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發
 
HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)
 
HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料
 
YUI 3 菜鳥救星
YUI 3 菜鳥救星YUI 3 菜鳥救星
YUI 3 菜鳥救星
 
FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flash
 
关于Js的跨域操作
关于Js的跨域操作关于Js的跨域操作
关于Js的跨域操作
 

Mais de taobao.com

编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editortaobao.com
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践taobao.com
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化taobao.com
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践taobao.com
 
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editortaobao.com
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践taobao.com
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路taobao.com
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical enginetaobao.com
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏taobao.com
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索taobao.com
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索taobao.com
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现taobao.com
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构taobao.com
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台taobao.com
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具taobao.com
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考taobao.com
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践taobao.com
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践taobao.com
 

Mais de taobao.com (20)

编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
 
Berserk js
Berserk jsBerserk js
Berserk js
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
 
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical engine
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
 

YUI ─ 阿大

  • 4.
  • 8.  
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.  
  • 16.   国际化、 可用性 、本地化、视觉设计、 易用性 、信息架构、 安全 、流程化、 性能 、标准、设备、可移植性 ... ...
  • 17.  
  • 18. YUI
  • 20. 怎样自学成才 Examples: http://developer.yahoo.com/yui/examples/ API Docs: http://developer.yahoo.com/yui/docs/ Team Blog: http://yuiblog.com/
  • 21.
  • 22.
  • 23. YAHOO.lang YAHOO.lang.trim()   // 去除字符串两端的空格 <script  type =&quot; text/javascript &quot;>      var str = &quot;  Tao Bao   &quot; ;      YAHOO.lang.trim(str); //return &quot;Tao Bao&quot; </script>
  • 24. YAHOO.lang YAHOO.lang.trim()   // 去除字符串两端的空格 <script  type =&quot; text/javascript &quot;>      var str = &quot;  Tao Bao   &quot; ;      YAHOO.lang.trim(str); //return &quot;Tao Bao&quot; </script> <script  type =&quot; text/javascript &quot;>      var str = [&quot;  Tao Bao   &quot;] ;      YAHOO.lang.trim(str); //return [&quot;  Tao Bao  &quot;] </script>
  • 25. YAHOO.lang YAHOO.lang.merge()   // 属性合并 <script  type =&quot; text/javascript &quot;>      var p1 = {name: null ,age:0,sex:&quot; -> &quot;} ;      var p2 = {name:&quot; ada &quot;,age:18} ;      var p3 = YAHOO.lang.merge(p1,p2);       //p3 = {name:&quot;ada&quot;,age:18,sex:&quot;->&quot;} </script>
  • 26. YAHOO.lang 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.lang.html
  • 27.
  • 28. YAHOO.util.Dom YAHOO.util.Dom.get()   // 根据 ID 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      YAHOO.util.Dom.get(&quot; J_Id &quot;) ; // return HTMLElement </script>
  • 29. YAHOO.util.Dom YAHOO.util.Dom.get()   // 根据 ID 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      YAHOO.util.Dom.get(&quot; J_Id &quot;) ; // return HTMLElement </script> <script  type =&quot; text/javascript &quot;>      var ids = [&quot; J_Id1 &quot;,&quot; J_Id2 &quot;,&quot; J_Id3 &quot;] ;      YAHOO.util.Dom.get(ids) ;      // return HTMLElement[] </script>
  • 30. YAHOO.util.Dom YAHOO.util.Dom.getElemetsByClassName()    // 根据 Class 获取 Dom 对象 <script  type =&quot; text/javascript &quot;>      var Dom = YAHOO.util.Dom ;      Dom.getElementsByClassName(&quot; J_Class &quot;, &quot;LI&quot; , &quot;J_Root&quot; ) ;       // return HTMLElement[] </script>
  • 31. YAHOO.util.Dom YAHOO.util.Dom.getAncestorByClassName()    // 获取匹配 Class 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var Dom = YAHOO.util.Dom ;      Dom.getAncestorByClassName(&quot; J_Child &quot;,&quot; J_Parent &quot;) ;       // return HTMLElement </script>
  • 32. YAHOO.util.Dom YAHOO.util.Dom.getAncestorByClassName()    // 获取匹配 Class 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var Dom = YAHOO.util.Dom ;      Dom.getAncestorByClassName(&quot; J_Child &quot;,&quot; J_Parent &quot;) ;       // return HTMLElement </script> // 获取匹配 TagName 的最近父 Dom 对象 <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      Dom.getAncestorByTagName(&quot; J_Child &quot;,&quot; UL &quot;) ;       // return HTMLElement(UL) </script>
  • 33. YAHOO.util.Dom YAHOO.util.Dom.add [remove] Class()    // 方便的操作元素的 class <style  type =&quot; text/css &quot;> .hidden { display :none;} </style> <script  type =&quot; text/javascript &quot;>      var Dom = YAHOO.util.Dom ;      Dom.addClass(&quot; J_Id &quot;,&quot; hidden &quot;) ; // 将元素隐藏 </script>
  • 34. YAHOO.util.Dom YAHOO.util.Dom.add [remove] Class()    // 方便的操作元素的 class <style  type =&quot; text/css &quot;> .hidden { display :none;} </style> <script  type =&quot; text/javascript &quot;>      var Dom = YAHOO.util.Dom ;      Dom.addClass(&quot; J_Id &quot;,&quot; hidden &quot;) ; // 将元素隐藏 </script> <script  type =&quot; text/javascript &quot;>      var  Dom = YAHOO.util.Dom ;      var lists = Dom.getElementsByClassName(&quot; J_List &quot;) ;      // 将所有 class 中包含 J_List 的元素隐藏      Dom.addClass(lists ,&quot; hidden &quot;) ;  </script>
  • 35. YAHOO.util.Dom 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html
  • 36.
  • 37. YAHOO.util.Dom YAHOO.util.Dom.onDOMReady()    // 页面载入完成后执行 <script  type =&quot; text/javascript &quot;>      var Event = YAHOO.util.Event ;      Event.onDomReady(init) ;      function init(){          //init code      } </script>
  • 38. YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <script  type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Btn &quot;,&quot; click &quot;,foo) ;      function foo(e){          alert(&quot; 别摸我 &quot;) ;      } </script>
  • 39. YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <button  id =&quot; J_Btn1 &quot;  class =&quot; J_Btn &quot;> 按钮 1</button> <button  id =&quot; J_Btn2 &quot;  class =&quot; J_Btn &quot;> 按钮 2</button> <button  id =&quot; J_Btn3 &quot;  class =&quot; J_Btn &quot;> 按钮 3</button>
  • 40. YAHOO.util.Event YAHOO.util.Dom.on()   // 优雅地绑定事件 <button id =&quot; J_Btn1 &quot; class =&quot; J_Btn &quot;> 按钮 1</button> <button  id =&quot; J_Btn2 &quot;  class =&quot; J_Btn &quot;> 按钮 2</button> <button  id =&quot; J_Btn3 &quot;  class =&quot; J_Btn &quot;> 按钮 3</button> <script type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ,Dom = YAHOO.util.Dom ;      var btns = [&quot; J_Btn1 &quot;,&quot; J_Btn2 &quot;,&quot; J_Btn3 &quot;] ;      //var btns = Dom.getElementsByClassName(&quot;J_Btn&quot;) ;      Event.on(btns,&quot; click &quot;,foo) ;      function  foo(e){          alert(this.id) ;      } </script> Demo  http://zhuhj.googlecode.com/svn/trunk/YUIPPTDEMO/YUI-Event-array.html
  • 41. YAHOO.util.Event YAHOO.util.Dom.preventDefault()   // 取消默认事件 <a href =&quot; http://.../XX.html &quot;  id =&quot; J_Expand &quot;> 展开 </a> <script type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Expand &quot;,&quot; click &quot;,handleExpand) ;      function  handleExpand(e){          Event.preventDefault(e);          // other code      } </script>
  • 42. YAHOO.util.Event YAHOO.util.Dom.getTarget()   // 获取事件目标元素 <div id =&quot; J_Box &quot; style =&quot; width:100px;height:100px;baground-color:#ff0000; &quot;>      <a href =&quot; http://.../XX.html &quot;  id =&quot; J_Expand &quot;> 展开 </a> <div> <script type =&quot; text/javascript &quot;>      var  Event = YAHOO.util.Event ;      Event.on(&quot; J_Expand &quot;,&quot; click &quot;,foo) ;      function  foo(e){          alert(Event.getTarget(e).tagName) ;      } </script>
  • 43. YAHOO.util.Event 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html
  • 44.
  • 45. YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Get 请求 <script type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var callback = {          timeout: 30000,          success: function(r){              alert(r.responseText) ;          },          failure: function(r){              alert(r.status) ; // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ; </script>
  • 46. YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Get 请求 <script type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success: function (r){              alert(r.responseText) ;          },          failure: function (r){              alert(r.status) ; // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ; </script>
  • 47. YAHOO.util.Connection YAHOO.util.Connection.asyncRequest() // 发起 ajax 请求 //Post 请求 <script type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success: function (r){              alert(r.responseText) ;          },          failure: function (r){              alert(r.status) ; // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.asyncRequest(&quot; post &quot;,&quot; url &quot;,callback,&quot; name=ada&age=18 &quot;) ; </script>
  • 48. YAHOO.util.Connection YAHOO.util.Connection.setForm() // 设置提交表单 <script type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;      var  callback = {          timeout: 30000,          success: function (r){              alert(r.responseText) ;          },          failure: function (r){              alert(r.status) ; // 0: 表示通讯错误   1: 表示用户取消          }      }      Con.setForm(&quot;J_FormId&quot;) ;      Con.asyncRequest(&quot; post &quot;,&quot; url &quot;,callback) ; </script>
  • 49. YAHOO.util.Connection YAHOO.util.Connection.abort() // 终止请求 <script type =&quot; text/javascript &quot;>      var  Con = YAHOO.util.Connection ;Event = YAHOO.util.Event;      var  callback = {          timeout: 30000,          success: function (r){              alert(r.responseText) ;          },          failure: function (r){              if(r.status !== 1){alert(&quot; 请求失败 &quot;) ;}          }      }      Con.asyncRequest(&quot; get &quot;,&quot; url &quot;,callback) ;      Event.on(&quot; J_Cancel &quot;,&quot; click &quot;, function (){Con.abort() ;}) ; </script>
  • 50. YAHOO.util.Connection 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Connect.html
  • 51.
  • 52. YAHOO.util.Get YAHOO.util.Get.script() // 动态加载一个 js <script type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          timeout: 30000,          chartset: &quot;GBK&quot;,          onSuccess: function (o){},          onFailure: function(o){},          onTimeout: function(o){}      }      Get.script(&quot; http://... .../***.js &quot;,opts) ; </script>
  • 53. YAHOO.util.Get YAHOO.util.Get.script() // 动态载入一个 js 文件 // 用全局变量来实现跨域获取数据 //data.js var __DATA__ = &quot; Great Wall &quot; ; <script type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          ... ...          onSuccess: function (o){              try {alert(window.__DATA__) ;} catch (e){}          }          ... ...      }      Get.script(&quot; http://... .../data.js &quot;,opts) ; </script>
  • 54. YAHOO.util.Get YAHOO.util.Get.script() // 动态载入一个 js 文件 // 用 JSONP 来实现跨域获取数据 //data.js foo (&quot; Great Wall &quot;) ; <script type =&quot; text/javascript &quot;>      var  Get = YAHOO.util.Get ;      var  opts = {          timeout: 30000,          chartset: &quot;GBK&quot;,          onFailure: function(o){},          onTimeout: function(o){}      }      Get.script(&quot; http://... .../data.js?jsonp=foo &quot;,opts) ; </script>
  • 55. YAHOO.util.Get 更多 >> http://developer.yahoo.com/yui/docs/YAHOO.util.Get.html
  • 58.
  • 60. Q&A
  • 62.

Notas do Editor

  1. 简单 YUI 介绍 淘宝 UED 阿大
  2. 在介绍 YUI 之前先来了解下前端工程师 前端工程师很年轻 只有 5 岁 前端工程师的嘉年华 D2 http://www.d2forum.org 2007 年举办第一届,最近一届在阿里巴巴滨江(行)总部,时间: 2009 年 12 月 19 日
  3. 那么到底什么是前端工程师呢? 或者说前端工程师都要做些什么? notice :可以问问大家的看法,大家眼中的前端工程师。 
  4. 做 demo 是最基本的 要了解 html/css/javascript ,实际工作中可能了解的还要多一点点,比如后台的知识和交互知识。 css/ 盒模型 /js 等在不同浏览器里往往有不一样的表现 一些简单的页面要在不同浏览器里表现一致比较容易做到。
  5. 根据淘宝的实际情况,一般在需求阶段就会有前端介入 图例只是项目或日常中的一部分过程。另外一些与前端关系不大的这里省略了。
  6. 互动时间: html :标记语言 css :描述语言 js :动态语言
  7. 问问大家从这张图中看出什么? 下一 PPT , 7 个知识点 一个合格的前端工程师的涉猎范围
  8. (X)HTML CSS DOM BOM JavaScript 数据传输 Flash
  9. 浏览器 操作系统 前端语言 后台
  10. 苹果 windows Linux/Unix/ 移动平台 上网本(趋势) Google
  11. 渲染引擎: Safair/Chrome   WebKit Firefox Gecko 目前的 firefox 3.X 是基于 mozilla 的 Gecko1.9 平台开发的。 IE  Trident(mshtml) Opera Presto  js 引擎: safari  Nitro firefox   3.X TraceMonkey  2.X  SpiderMonkey Chrome V8 opera 10 Futhark    10.5 Carakan  IE6 JScript5.6 IE7 JScript5.7 IE8 JScript6
  12. 标准模式 怪异模式 doctype &lt;!DOCTYPE html&gt; 15 字符
  13. 数据有点夸张,但说明了前端工程师的知识点非常广泛。 接触的平台复杂。标准不统一 。
  14. 在从另一维度来看一下。
  15. 一些关键词
  16. 束缚 复杂 凌乱
  17. YUI 是什么 YUI 是 yahoo 的开源前端库,包括 js
  18. 什么情况下需要使用军刀: 复杂的环境 YUI 能解决哪些问题: 1 ,浏览器兼容方面      事件, DOM , ajax 等的 2 ,方便的工具函数 3 ,统一的开发模式
  19. var Dom = YAHOO.util.Dom 推荐大家使用这个写法