SlideShare uma empresa Scribd logo
1 de 50
Javascript 的分层概念 曹刘阳 (阿当)
原生 javascript 目录 底层、组件层和应用层 YUI2 JQuery YUI3
原生 javascript
变量冲突: <input type=&quot;button&quot; value=&quot;click me&quot; id=&quot;btn&quot; /> <script type=&quot;text/javascript&quot;> //  功能 A var a = 1,btn = document.getElementById(&quot;btn&quot;); btn.onclick = function(){ a++; alert(a); // 101 、 102 、 103… } </script> ... <script type=&quot;text/javascript&quot;> //  功能 B var a = 100; // 在此处被重新赋值 </script>
变量暴露在 window 作用域下,多人合作 多个功能间互相干扰。
<ul id=&quot;list&quot;> <li id=&quot;firstItem&quot;>111</li> <li>222</li> <li>333</li> </ul> <script type=&quot;text/javascript&quot;> var list = document.getElementById(&quot;list&quot;) ,  firstItem = document.getElementById(&quot;firstItem&quot;); alert(firstItem.nextSibling.innerHTML);  // IE : 222  firefox : undefined alert(list.childNodes.length);   // IE : 3  firefox : 7  </script> DOM 相关 -1 :
<style> #test{width:300px;height:300px;background:blue;} </style> <body> <div id=&quot;test&quot;></div> <script type=&quot;text/javascript&quot;> var test = document.getElementById(&quot;test&quot;); if(document.all){  test.style.filter = ‘alpha(opacity=20)’; // IE }else{ test.style.opacity = 0.2; // firefox } </script> DOM 相关 -2 :
不同浏览器,对  DOM 的解析不同
<input type=&quot;button&quot; value=&quot;click me&quot; id=&quot;btn&quot; /> <span id=&quot;span&quot;>hello world</span> <script type=&quot;text/javascript&quot;> document.getElementById(&quot;btn&quot;).onclick = function(e){ e = window.event || e; var el = e.srcElement || e.target; alert(el.tagName); } document.getElementById(&quot;span&quot;).onclick = function(e){ e = window.event || e; var el = e.srcElement || e.target; alert(el.tagName); } </script> Event 相关 -1 :
<input type=&quot;button&quot; value=&quot;click me&quot; id=&quot;btn&quot; /> <script type=&quot;text/javascript&quot;> var btn = document.getElementById(&quot;btn&quot;); if(document.all){ // IE btn.attachEvent(&quot;onclick&quot;,function(){ alert(&quot;hello world&quot;); }); } else { // firefox btn.addEventListener(&quot;click&quot;,function(){ alert(&quot;hello world&quot;); },false); } </script> Event 相关 -2 :
不同浏览器,对 Event 的解析不同
//  设置 cookie  document.cookie = &quot;name=adang; expires= Mon, 04 Oct 2010 02:40:14 GMT; path=/&quot;; document.cookie = &quot;sex=male; expires= Mon, 04 Oct 2010 02:40:14 GMT; path=/&quot;; document.cookie = &quot;blog=http://www.adanghome.com; expires= Mon, 04 Oct 2010 02:40:14 GMT; path=/&quot;; /*  读取 cookie **  此时 cookie 里的值为 &quot;name=adang; sex=male; blog=http://www.adanghome.com&quot; */ var cookieStr = document.cookie; //  对字符进行操作,取出 name 对应的值  var name = cookieStr.split(&quot;name&quot;)[1].split(&quot;;&quot;)[0].split(&quot;=&quot;)[1]; alert(name);  其它操作:
原生 javascript 接口太笨拙
原生 javascript 写程序就像汽车行驶在一条凹凸不平的小路上。
底层、组件层和应用层
控制全局作用域的变量数量: <input type=&quot;button&quot; value=&quot;click me&quot; id=&quot;btn&quot; /> <script type=&quot;text/javascript&quot;> (function(){ var a = 1,btn = document.getElementById(&quot;btn&quot;); btn.onclick = function(){ a++; alert(a); } })(); </script> ... <script type=&quot;text/javascript&quot;> (function(){ var a = 100; })(); </script>
问题一:匿名函数间无法通信 问题二:如果匿名函数内容很长 ,函数内部还是有冲突隐患
命名空间 <script type=&quot;text/javascript&quot;> var GLOBAL = {}; GLOBAL.namespace = function(str){ var arr = str.split(&quot;.&quot;),o = GLOBAL; for (i=(arr[0] == &quot;GLOBAL&quot;) ? 1 : 0; i<arr.length; i++) { o[arr[i]]=o[arr[i]] || {}; o=o[arr[i]]; } } </script>
<script type=&quot;text/javascript&quot;> (function(){ GLOBAL.namespace(&quot;A&quot;);  GLOBAL.A.a=1;  var btn = document.getElementById(&quot;btn&quot;); btn.onclick = function(){ GLOBAL.A.a++; alert(GLOBAL.A.a); } GLOBAL.namespace(&quot;B&quot;); GLOBAL.B.a = 100; })(); </script> ... <script type=&quot;text/javascript&quot;> (function(){  var a = 100; alert(a);  alert(GLOBAL.A.a);  })(); </script>
封装 DOM 的接口 <script type=&quot;text/javascript&quot;> function getNextNode(node){ if(ie){ … } else { … } };   function  setOpacity  (node,opacityValue){ if(ie){ … } else { … } } </script>
封装 Event 的接口 <script type=&quot;text/javascript&quot;> function getEventTarget(e){ if(ie){ … } else { … } };   function  on  (node,eventType,handler){ if(ie){ … } else { … } } </script>
将函数归到相应的命名空间下: <script type=&quot;text/javascript&quot;> var GLOBAL = {}; GLOBAL.namespace = function(str){ … }; …  // GLOBAL.extend 、 GLOBAL.merge GLOBAL.namespace(“Dom”); GLOBAL.Dom.getNextSibling = function(){ … } GLOBAL.Dom.setOpacity = function(){ … } … // GLOBAL.Dom.getPrevSibling 、 GLOBAL.Dom.getStyle GLOBAL.namespace(“Event”); GLOBAL.Event.getEventTarget = function(){ … } GLOBAL.Event.on = function(){ … } … // GLOBAL.Event.  stopPropagation   、 GLOBAL.Event.getXY </script>
将 DOM 、 Event 相关的操作进行封装,另外扩展一些原生 javascript 语言层面不提供的接口,组成新的底层。
底层替我们铲平了路面的凸起(浏览器差异),填补了路面的凹 陷(补充 javascript 语言的底层方法)
封装 cookie 的接口 <script type=&quot;text/javascript&quot;> var cookie = { set : function(){ … }, read : function(){ … }, del : function(){ } }; </script>
将函数归到相应的命名空间下: <script type=&quot;text/javascript&quot;> GLOBAL.namespace(“Cookie”); GLOBAL.Cookie = { set : function(){ …} read : function(){ … } del : function(){ … } } …  // GLOBAL.Ajax 、 GLOBAL.Drag 、 GLOBAL.Resize… </script>
将常见功能封装成组件,组件将内部实现细节透明,提供简单易用的接口。
组件层替我们在路面铺上沥青,将普通小路变成高速公路。
应用层 : 和页面具体需求相关,调用底层的底层接口和组件层的组件,依赖底层和组件层。 组件层 : 调用底层提供的接口,封装常用组件,依赖底层。和具体功能有关,但和页面需求无关。为应用层提供组件(组件提供组件的接口)。例如 Drag 、 Cookie 、 Ajax 、 Resize 、 Tab 、 Tree 。 底层   : 封装 DOM 、 Event 在各浏览器下的区别,提供统一的接口 ; 扩展 javascript 语言,提供全局性的方法。和具体功能无关,只为组件层和应用层提供底层接口。例如 getNextSibling ()、 getEventTarget ()、 namespace ()、 trim ()、 isArray() 。
典型的引用方法: <html> <head> <title> 阿当制作 </title> </head> <body> <script type = “ text/javascript ” src = “ base.js ”></script>  <!--  底层  --> <script type = “ text/javascript ” src = “ ajax.js ”></script>  <!–  组件层  --> <script type = “ text/javascript ” src = “ tab.js ”></script>  <!--  组件层  --> <script type = “ text/javascript ”> <!--  应用层  --> (function(){ // your code here  })(); </script> </body> </html>
应用层 : 1)  避免多人合作的冲突 ;   2)  组件间的依赖关系处理 ;  组件层 : 1)  尽可能丰富的组件 ;   2)  易用性 ;   3)  可重用性。 底层   : 1)  跨浏览器兼容 , 屏蔽尽可能多的浏览器差异 ; 2)  补充完善 javascript 语言本身的不足 ;   3)  精简。
底层  +  组件层  =  框架
框架可以帮助我们将精力集中在应用层的逻辑处理上,例如设计类、接口、设计模式,而不是将精力放在频繁的底层操作上。 例: http://www.adanghome.com/js_demo/1/
开发框架的难点:代码品质、组件的丰富程度、兼容性、易用性、可复用性…
我们有大量开源框架可以选择: jQuery 、 YUI 、  Dojo 、  Prototype 、 mootool…
YUI2
官方网址: http://developer.yahoo.com/yui/2/
jQuery
官方网址: http://www.jquery.com
“ 小”与“强”的平衡: YUI2 将文件分成粒度非常小,靠 loader 机制按需加载,达到“小”和“强”的平衡,扩展性好 ; jQuery 靠作者强大的个人能力,将 js 编程发挥到极致,达到“小”和“强”的平衡,扩展性差。
处理依赖关系: YUI2 通过 loader 动态加载样式和脚本,智能地完成依赖关系的处理,调用简单,不易出错 ; jQuery 使用传统方式,手动添加样式和脚本,易出错。
第三方组件: YUI2 所有组件都是官方提供,第三方组件少,但代码品质高。 jQuery 有大量第三方组件,但代码品质参差不齐。
实际工作情况: 应用层 : 调用下面三层 自定义组件层 : 我们提供,定制型  框架组件层 : 框架提供,通用型 底层  : 框架提供,通用型
存在的问题: 1 )如何处理多人合作的问题 ; 2 )自定义类的格式。
类库?框架? 类库提供预编写好的类,隐藏底层操作,简化开发。帮助工程师将精力集中在应用层。 框架提供整套解决方案,除类库之外,还包括应用层的格式和自定义组件的格式。进一步帮助工程师将精力从“格式”中解放出来,专注于“逻辑”处理。
YUI3
官方网址: http://developer.yahoo.com/yui/3
widget init() destroy() render(){ renderUI(); bindUI(); syncUI(); } MyWidget.HTML_PARSER  = { } 例: http://www.adanghome.com/js_demo/2/
YUI3 带来的分层: 应用层 : 如有自定义类,继承抽象类 自定义组件层 : 我们提供,继承自抽象类  框架组件层 : 框架提供,继承自抽象类 抽象类层 : 框架提供 ,  统一自定义类的格式 底层 : 框架提供
 

Mais conteúdo relacionado

Mais procurados

管窥Nodejs的事件——基于观察者模式的事件队列
管窥Nodejs的事件——基于观察者模式的事件队列管窥Nodejs的事件——基于观察者模式的事件队列
管窥Nodejs的事件——基于观察者模式的事件队列Frank Cheung
 
AngularJS Sharing
AngularJS SharingAngularJS Sharing
AngularJS SharingTom Chen
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
Php More
Php MorePhp More
Php Morehenbo
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料彦波 叶
 
Ajax新手快车道
Ajax新手快车道Ajax新手快车道
Ajax新手快车道yiditushe
 
由浅到深了解Java Script类
由浅到深了解Java Script类由浅到深了解Java Script类
由浅到深了解Java Script类sosoyou
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.comThink hy
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快li qiang
 
前端开发之Js
前端开发之Js前端开发之Js
前端开发之Jsfangdeng
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结sunnylqm
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非Tony Deng
 
J Query简介及入门指南
J Query简介及入门指南J Query简介及入门指南
J Query简介及入门指南AppZ
 
如何实现登出按钮
如何实现登出按钮如何实现登出按钮
如何实现登出按钮LI Daobing
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發Chui-Wen Chiu
 

Mais procurados (15)

管窥Nodejs的事件——基于观察者模式的事件队列
管窥Nodejs的事件——基于观察者模式的事件队列管窥Nodejs的事件——基于观察者模式的事件队列
管窥Nodejs的事件——基于观察者模式的事件队列
 
AngularJS Sharing
AngularJS SharingAngularJS Sharing
AngularJS Sharing
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
Php More
Php MorePhp More
Php More
 
Xsd培训资料
Xsd培训资料Xsd培训资料
Xsd培训资料
 
Ajax新手快车道
Ajax新手快车道Ajax新手快车道
Ajax新手快车道
 
由浅到深了解Java Script类
由浅到深了解Java Script类由浅到深了解Java Script类
由浅到深了解Java Script类
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.com
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
 
前端开发之Js
前端开发之Js前端开发之Js
前端开发之Js
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非
 
J Query简介及入门指南
J Query简介及入门指南J Query简介及入门指南
J Query简介及入门指南
 
如何实现登出按钮
如何实现登出按钮如何实现登出按钮
如何实现登出按钮
 
Windows Mobile Widget 開發
Windows Mobile Widget 開發Windows Mobile Widget 開發
Windows Mobile Widget 開發
 

Semelhante a javascript的分层概念 --- 阿当

关于Js的跨域操作
关于Js的跨域操作关于Js的跨域操作
关于Js的跨域操作王 承石
 
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3edanwade
 
Javascript Training
Javascript TrainingJavascript Training
Javascript Trainingbeijing.josh
 
m.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimizationm.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimization346682530
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)amd6400
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)amd6400
 
揭秘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
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训lotusprince
 
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skillfirestoke
 
HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)amd6400
 
HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)amd6400
 
Collaboration On Rails
Collaboration On RailsCollaboration On Rails
Collaboration On RailsJesse Cai
 
Javascript 性能优化总结.docx
Javascript 性能优化总结.docxJavascript 性能优化总结.docx
Javascript 性能优化总结.docxbaixingfa
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)ziggear
 
Introduction to Parse JavaScript SDK
Introduction to Parse JavaScript SDKIntroduction to Parse JavaScript SDK
Introduction to Parse JavaScript SDK維佋 唐
 
JavaScript Event - 圆业
JavaScript Event - 圆业JavaScript Event - 圆业
JavaScript Event - 圆业taobao.com
 

Semelhante a javascript的分层概念 --- 阿当 (20)

关于Js的跨域操作
关于Js的跨域操作关于Js的跨域操作
关于Js的跨域操作
 
Struts1+ hibernate3
Struts1+ hibernate3Struts1+ hibernate3
Struts1+ hibernate3
 
Javascript Training
Javascript TrainingJavascript Training
Javascript Training
 
Js dom
Js domJs dom
Js dom
 
m.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimizationm.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimization
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
 
揭秘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
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
JavaScript Advanced Skill
JavaScript Advanced SkillJavaScript Advanced Skill
JavaScript Advanced Skill
 
HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)
 
HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)
 
Collaboration On Rails
Collaboration On RailsCollaboration On Rails
Collaboration On Rails
 
Javascript 性能优化总结.docx
Javascript 性能优化总结.docxJavascript 性能优化总结.docx
Javascript 性能优化总结.docx
 
Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)Web设计 3 java_script初探(程序员与设计师的双重眼光)
Web设计 3 java_script初探(程序员与设计师的双重眼光)
 
Jsp讲义
Jsp讲义Jsp讲义
Jsp讲义
 
Introduction to Parse JavaScript SDK
Introduction to Parse JavaScript SDKIntroduction to Parse JavaScript SDK
Introduction to Parse JavaScript SDK
 
JavaScript Event - 圆业
JavaScript Event - 圆业JavaScript Event - 圆业
JavaScript Event - 圆业
 

Mais de 裕波 周

web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享裕波 周
 
web标准化交流会bobby分享
web标准化交流会bobby分享web标准化交流会bobby分享
web标准化交流会bobby分享裕波 周
 
前端架构漫谈
前端架构漫谈前端架构漫谈
前端架构漫谈裕波 周
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型裕波 周
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型裕波 周
 
白玉磊 Webrebuild
白玉磊 Webrebuild白玉磊 Webrebuild
白玉磊 Webrebuild裕波 周
 
彪叔 [2010]webrebuild
彪叔 [2010]webrebuild彪叔 [2010]webrebuild
彪叔 [2010]webrebuild裕波 周
 
Scrum敏捷项目管理
Scrum敏捷项目管理Scrum敏捷项目管理
Scrum敏捷项目管理裕波 周
 
移动设备web重构
移动设备web重构移动设备web重构
移动设备web重构裕波 周
 
重温网站重构
重温网站重构重温网站重构
重温网站重构裕波 周
 
从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战裕波 周
 
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构裕波 周
 
《一专多长》——Twinsen[梁璟彪]
《一专多长》——Twinsen[梁璟彪]《一专多长》——Twinsen[梁璟彪]
《一专多长》——Twinsen[梁璟彪]裕波 周
 
浏览器兼容性问题简介 --- 黄昊
浏览器兼容性问题简介 --- 黄昊浏览器兼容性问题简介 --- 黄昊
浏览器兼容性问题简介 --- 黄昊裕波 周
 
网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭裕波 周
 
分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军裕波 周
 

Mais de 裕波 周 (17)

web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享web标准化交流会上海站bobby分享
web标准化交流会上海站bobby分享
 
web标准化交流会bobby分享
web标准化交流会bobby分享web标准化交流会bobby分享
web标准化交流会bobby分享
 
前端架构漫谈
前端架构漫谈前端架构漫谈
前端架构漫谈
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
白玉磊 Webrebuild
白玉磊 Webrebuild白玉磊 Webrebuild
白玉磊 Webrebuild
 
彪叔 [2010]webrebuild
彪叔 [2010]webrebuild彪叔 [2010]webrebuild
彪叔 [2010]webrebuild
 
Scrum敏捷项目管理
Scrum敏捷项目管理Scrum敏捷项目管理
Scrum敏捷项目管理
 
移动设备web重构
移动设备web重构移动设备web重构
移动设备web重构
 
重温网站重构
重温网站重构重温网站重构
重温网站重构
 
从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战从问题开始,前端,架构、框架与库的实战
从问题开始,前端,架构、框架与库的实战
 
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构
 
Ie9 overview
Ie9 overviewIe9 overview
Ie9 overview
 
《一专多长》——Twinsen[梁璟彪]
《一专多长》——Twinsen[梁璟彪]《一专多长》——Twinsen[梁璟彪]
《一专多长》——Twinsen[梁璟彪]
 
浏览器兼容性问题简介 --- 黄昊
浏览器兼容性问题简介 --- 黄昊浏览器兼容性问题简介 --- 黄昊
浏览器兼容性问题简介 --- 黄昊
 
网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭网站重构Whoami ---- 偷米饭
网站重构Whoami ---- 偷米饭
 
分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军分层语义化模板实践 ---- 张克军
分层语义化模板实践 ---- 张克军
 

Último

加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制bairnshajjes
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制kathrynalvarez364
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书kathrynalvarez364
 
Grade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxGrade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxPriscilleXu
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdfshanshanhui1
 
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...黑客 接单【TG/微信qoqoqdqd】
 
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptx
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptxJAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptx
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptxCHANSUITNEEMoe
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制gravestomas0
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单jakepaige317
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书kathrynalvarez364
 

Último (10)

加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
 
Grade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxGrade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptx
 
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
003 DSKP KSSR SEMAKAN 2017 BAHASA CINA TAHUN 3.pdf
 
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
 
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptx
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptxJAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptx
JAWAPAN BUKU AKTIVITI BAHASA CINA TAHUN 3.pptx
 
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
未毕业在线购买日本熊本县立大学学位记🏆学习成绩单电子版定制🏆克隆爱尔兰大学文凭🏆CFA证书定制
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
 

javascript的分层概念 --- 阿当