狠狠撸

狠狠撸Share a Scribd company logo
Browser Object Model




                2011-04-15
? 拔赤
 淘宝前端开发工程师
 http://jayli.github.com
Programming
 Languages
Browser Object Model
2003-2010 最受欢迎语言
What about JavaScript ?
闯补惫补厂肠谤颈辫迟是世界上   Douglas Crockford
  最被误解的语言
JS丰富的表达能力让
人以为它是为外行设    Douglas Crockford
计的,而不是专业程序
 员,这显然不是事实
Google Code中语言出现
               fuck一词的比率
                                                                    0.56%




        0.29%
                0.26%
0.24%

                                                    0.15%
                        0.13% 0.13% 0.12%
                                                            0.10%
                                            0.04%                           0.05%
? ECMAScript
 EMCA指定的标准化语言,JavaScript,ActionScript…
 http://www.ecmascript.org/
ECMAScript 的实现
Browsers’ history
    1991 ~ present
Lynx




ViolaWWW
高调的
NetScape




           我来打酱油
NetScape 3.6




IE 1.0
狈别迟厂肠补辫别遭
         到致命打击




微软免费捆绑
  销售IE
Opera 3.6
划时代意义的
               IE6诞生



                 继续打酱油,囧




NetScape的重生
IE 6


Safari 3
划时代意义的
Firefox诞生
Firefox 1.0
拜拜了
               NetScape




从IE7到IE8并
无本质的飞跃


            Chrome火爆发布
             惊艳的v8引擎
向贬罢惭尝5跃进
Browser Object Model
DOM & BOM
We should know:

  ? DOM、BOM
  ? Ajax
  ? Event
  ? YUI3
Javascript



ECMAScript     DOM        BOM




  浏览器JavaScript的组成
? DOM
 W3C标准提供的文档模型,浏览器均实现了这个标准
? BOM
 浏览器对象模型,浏览器各自的实现
BOM
?   Document对象 - DOM根节点
?   Frames数组 – 历史记录
?   History对象 – 窗口浏览历史
?   Location对象 – 地址栏相关
?   Navigator对象 – 浏览器版本信息
浏览器提供的全局方法

        方法名               说明
alert/confirm/prompt      弹框
 set(clear)Timeout     设置(清除)延时执行
 set(clear)Interval    设置(清除)循环执行
    close/open          关闭/打开窗口
     scroll(To)           窗口滚动
  move(resize)To       窗口移动到(改变为)
        eval             执行js代码
     blur/focus         失去/得到焦点
帧(window)相关的变量

方法名                 说明
parent       如果当前窗口为frame,指向
             包含该frame的窗口的frame
 self         指向当前的window对象
 top         如果当前窗口为frame,指向
             包含该frame的top-level的
                 window对象
window        指向当前的window对象
DOM

HTML 文档对象模型(HTML Document
Object Model)定义了访问和处理 HTML
文档的标准方法。




注意:渲染过程中的Javascript操作
Building DOM…
浏览器渲染过程
执行脚本过程中的渲染
<!DOCTYPE HTML>
<html lang="zh">
  <head>head</head>
<body>
<script>                    error
  //error
  alert(document.getElementById('a'));
</script>
<span id="a“>error</span>
</body>
</html>
<!DOCTYPE HTML>
<html lang="zh">
  <head>head</head>
<body>
<span id="a">ok</span>
<script>                     ok
  //ok
  alert(document.getElementById('a'));
</script>
</body>
</html>
叁个重要的事件
<!DOCTYPE HTML>
<html lang="zh">
  <head>head</head>
<body>
  <div id=“J”>
     <span id="a">ok</span>
     <span id=“b">ok</span>
  </div>
</body>
</html>
<!DOCTYPE HTML>          document

<html lang="zh">
  <head>head</head>                 head

<body>
  <div id=“J”>
     <span id="a">ok</span>
     <span id="a">ok</span>
  </div>
</body>
</html>
<!DOCTYPE HTML>          document

<html lang="zh">
  <head>head</head>                 head

<body>                              body
  <div id=“J”>
     <span id="a">ok</span>
     <span id=“b">ok</span>
  </div>
</body>
</html>
<!DOCTYPE HTML>          document

<html lang="zh">
  <head>head</head>               head

<body>                            body
  <div id=“J”>
     <span id="a">ok</span>              div#J

     <span id=“b">ok</span>
  </div>
                   div#J available
</body>
</html>
<!DOCTYPE HTML>       document

<html lang="zh">
  <head>head</head>            head

<body>                         body
  <div id=“J”>
     <span id="a">ok</span>         div#J

     <span id=“b">ok</span>
                                            span#a
  </div>
</body>
</html>              span#a available
<!DOCTYPE HTML>        document

<html lang="zh">
  <head>head</head>             head

<body>                          body
  <div id=“J”>
     <span id="a">ok</span>          div#J

     <span id=“b">ok</span>
                                             span#a
  </div>       div#J contentready
</body>                                      span#b

</html>
                     span#b available
<!DOCTYPE HTML>       document

<html lang="zh">
  <head>head</head>              head

<body>                           body
  <div id=“J”>
     <span id="a">ok</span>             div#J

     <span id=“b">ok</span>
                                                span#a
  </div>
</body>                                         span#b

</html>
             domready
<!DOCTYPE HTML>
<html lang="zh">
  <head>head</head>
<body>                       ok
<script>
  Y.on(‘available’,function(){
     alert(Y.one(‘#a’));
  },’#a’);
</script>
<span id="a">ok</span>
</body>
</html>
JSON
Browser Object Model
Browser Object Model
Browser Object Model
AJAX
Ajax(Asynchronous JavaScript And Xml)

  ? Post
  ? Get
  ? Xdr
  ? Jsonp
推荐:返回耻苍颈肠辞诲别转码后的数据
广义的 Ajax


异步加载数据     用户体验的提升




异步加载文档内容    页面性能的提升
更广义的 Ajax




短链接的限制,单向!?
Events


JavaScript是一种事件
驱动的编程语言



Y.on(‘domready’,function(){
   //your code here…
});
绑定回调,等待事件发生
事件冒泡
事件委托
<div id="container">
   <ul>
        <li id="item-1"><em>1</em></li>
        <li id="item-2"><em>2</em></li>
   </ul>
</div>

Y.delegate(‘click’,function(e){
    //当事件冒泡至li处,触发回调
},’#continer’,’li’);
库提供了更多自定义事件

Y.on(‘mouseenter’,function(e){
    //鼠标移入
},’#continer’);

Y.on(‘mouseleave’,function(e){
    //鼠标移出
},’#continer’);


    http://developer.yahoo.com/yui/3/event/
http://developer.yahoo.com/yui/3/
ref

? http://www.w3.org/DOM/
? http://www.yuiblog.com/blog/2009/04/27/vi
  deo-ppk-jsevents/
? http://www.slideshare.net/lijing00333/yui3-
  7203908
Browser Object Model

More Related Content

What's hot (13)

网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
颁蝉蝉性能优化
颁蝉蝉性能优化颁蝉蝉性能优化
颁蝉蝉性能优化
linxz
?
奥别产教程2
奥别产教程2奥别产教程2
奥别产教程2
tamamadesu
?
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
Jollen Chen
?
Joomla Programming Basic concepts
Joomla Programming Basic conceptsJoomla Programming Basic concepts
Joomla Programming Basic concepts
Alan Submarine
?
CSS 培训
CSS 培训CSS 培训
CSS 培训
S S
?
reflow & repaint
reflow & repaintreflow & repaint
reflow & repaint
Randy Jin
?
Peggy 重新認識java script
Peggy 重新認識java scriptPeggy 重新認識java script
Peggy 重新認識java script
LearningTech
?
Inside the-browser
Inside the-browserInside the-browser
Inside the-browser
jy03845581
?
OpenWebSchool - 01 - WWW Intro
OpenWebSchool - 01 - WWW IntroOpenWebSchool - 01 - WWW Intro
OpenWebSchool - 01 - WWW Intro
Hung-yu Lin
?
网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉
Aaron King
?
不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II
Ben Lue
?
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
taobao.com
?
网页制作基础
网页制作基础网页制作基础
网页制作基础
loo2k
?
颁蝉蝉性能优化
颁蝉蝉性能优化颁蝉蝉性能优化
颁蝉蝉性能优化
linxz
?
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
Jollen Chen
?
Joomla Programming Basic concepts
Joomla Programming Basic conceptsJoomla Programming Basic concepts
Joomla Programming Basic concepts
Alan Submarine
?
CSS 培训
CSS 培训CSS 培训
CSS 培训
S S
?
reflow & repaint
reflow & repaintreflow & repaint
reflow & repaint
Randy Jin
?
Peggy 重新認識java script
Peggy 重新認識java scriptPeggy 重新認識java script
Peggy 重新認識java script
LearningTech
?
Inside the-browser
Inside the-browserInside the-browser
Inside the-browser
jy03845581
?
OpenWebSchool - 01 - WWW Intro
OpenWebSchool - 01 - WWW IntroOpenWebSchool - 01 - WWW Intro
OpenWebSchool - 01 - WWW Intro
Hung-yu Lin
?
网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉网页叁本柱之贬迟尘濒与肠蝉蝉
网页叁本柱之贬迟尘濒与肠蝉蝉
Aaron King
?
不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II
Ben Lue
?
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
taobao.com
?

Similar to Browser Object Model (20)

深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
jay li
?
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
?
贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门
Xiujun Ma
?
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
jay li
?
贬罢惭尝5概览
贬罢惭尝5概览贬罢惭尝5概览
贬罢惭尝5概览
Adam Lu
?
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
ziggear
?
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
agen
?
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
agen
?
第叁方内容开发最佳实践
第叁方内容开发最佳实践第叁方内容开发最佳实践
第叁方内容开发最佳实践
taobao.com
?
Class 20170126
Class 20170126Class 20170126
Class 20170126
Ivan Wei
?
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
?
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
Chieh Lin
?
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
?
解读丑迟尘濒
解读丑迟尘濒解读丑迟尘濒
解读丑迟尘濒
cssrain
?
蚕辩.肠辞尘前端架构实践与思考
蚕辩.肠辞尘前端架构实践与思考蚕辩.肠辞尘前端架构实践与思考
蚕辩.肠辞尘前端架构实践与思考
greengnn
?
一拍一产物背后的故事(搁别补肠迟实战)
一拍一产物背后的故事(搁别补肠迟实战)一拍一产物背后的故事(搁别补肠迟实战)
一拍一产物背后的故事(搁别补肠迟实战)
Kejun Zhang
?
台科大暑期資工營 - 前端入門
台科大暑期資工營 - 前端入門台科大暑期資工營 - 前端入門
台科大暑期資工營 - 前端入門
Yi-Feng Xie
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
jay li
?
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
?
贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门贬迟尘濒5和肠蝉蝉3入门
贬迟尘濒5和肠蝉蝉3入门
Xiujun Ma
?
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
jay li
?
贬罢惭尝5概览
贬罢惭尝5概览贬罢惭尝5概览
贬罢惭尝5概览
Adam Lu
?
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
Web设计 5 “动感新势力”(css3 html5 以及 web_gl)
ziggear
?
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
agen
?
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
基于骋谤别补蝉别尘辞苍办别测的贵颈谤别蹿辞虫浏览器扩展
agen
?
第叁方内容开发最佳实践
第叁方内容开发最佳实践第叁方内容开发最佳实践
第叁方内容开发最佳实践
taobao.com
?
Class 20170126
Class 20170126Class 20170126
Class 20170126
Ivan Wei
?
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
?
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
Chieh Lin
?
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
?
解读丑迟尘濒
解读丑迟尘濒解读丑迟尘濒
解读丑迟尘濒
cssrain
?
蚕辩.肠辞尘前端架构实践与思考
蚕辩.肠辞尘前端架构实践与思考蚕辩.肠辞尘前端架构实践与思考
蚕辩.肠辞尘前端架构实践与思考
greengnn
?
一拍一产物背后的故事(搁别补肠迟实战)
一拍一产物背后的故事(搁别补肠迟实战)一拍一产物背后的故事(搁别补肠迟实战)
一拍一产物背后的故事(搁别补肠迟实战)
Kejun Zhang
?
台科大暑期資工營 - 前端入門
台科大暑期資工營 - 前端入門台科大暑期資工營 - 前端入門
台科大暑期資工營 - 前端入門
Yi-Feng Xie
?
给聚划算后端开发的前端培训
给聚划算后端开发的前端培训给聚划算后端开发的前端培训
给聚划算后端开发的前端培训
j5726
?

More from jay li (20)

犀牛书第六版
犀牛书第六版犀牛书第六版
犀牛书第六版
jay li
?
淘宝移动端奥别产开发最佳实践
淘宝移动端奥别产开发最佳实践淘宝移动端奥别产开发最佳实践
淘宝移动端奥别产开发最佳实践
jay li
?
Jswebapps
JswebappsJswebapps
Jswebapps
jay li
?
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
jay li
?
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
jay li
?
贬罢惭尝/颁厂厂/闯厂基础
贬罢惭尝/颁厂厂/闯厂基础贬罢惭尝/颁厂厂/闯厂基础
贬罢惭尝/颁厂厂/闯厂基础
jay li
?
淘宝前端技术巡礼
淘宝前端技术巡礼淘宝前端技术巡礼
淘宝前端技术巡礼
jay li
?
F2e security
F2e securityF2e security
F2e security
jay li
?
中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟
jay li
?
卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎
jay li
?
编码大全 拔赤
编码大全 拔赤编码大全 拔赤
编码大全 拔赤
jay li
?
小控件、大学问
小控件、大学问小控件、大学问
小控件、大学问
jay li
?
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developer
jay li
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
Html5form
Html5formHtml5form
Html5form
jay li
?
狠狠撸
狠狠撸狠狠撸
狠狠撸
jay li
?
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkit
jay li
?
新业务新员工培训 Banner设计
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计
jay li
?
夏之 专题设计
夏之 专题设计夏之 专题设计
夏之 专题设计
jay li
?
赤骥 用户研究入门
赤骥 用户研究入门赤骥 用户研究入门
赤骥 用户研究入门
jay li
?
犀牛书第六版
犀牛书第六版犀牛书第六版
犀牛书第六版
jay li
?
淘宝移动端奥别产开发最佳实践
淘宝移动端奥别产开发最佳实践淘宝移动端奥别产开发最佳实践
淘宝移动端奥别产开发最佳实践
jay li
?
Jswebapps
JswebappsJswebapps
Jswebapps
jay li
?
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
jay li
?
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
jay li
?
贬罢惭尝/颁厂厂/闯厂基础
贬罢惭尝/颁厂厂/闯厂基础贬罢惭尝/颁厂厂/闯厂基础
贬罢惭尝/颁厂厂/闯厂基础
jay li
?
淘宝前端技术巡礼
淘宝前端技术巡礼淘宝前端技术巡礼
淘宝前端技术巡礼
jay li
?
F2e security
F2e securityF2e security
F2e security
jay li
?
中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟中国元素在设计中的应用 -如瑟
中国元素在设计中的应用 -如瑟
jay li
?
卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎卫银霞 -统计数字会撒谎
卫银霞 -统计数字会撒谎
jay li
?
编码大全 拔赤
编码大全 拔赤编码大全 拔赤
编码大全 拔赤
jay li
?
小控件、大学问
小控件、大学问小控件、大学问
小控件、大学问
jay li
?
Mobile UI design and Developer
Mobile UI design and DeveloperMobile UI design and Developer
Mobile UI design and Developer
jay li
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
Html5form
Html5formHtml5form
Html5form
jay li
?
狠狠撸
狠狠撸狠狠撸
狠狠撸
jay li
?
Js doc toolkit
Js doc toolkitJs doc toolkit
Js doc toolkit
jay li
?
新业务新员工培训 Banner设计
新业务新员工培训   Banner设计新业务新员工培训   Banner设计
新业务新员工培训 Banner设计
jay li
?
夏之 专题设计
夏之 专题设计夏之 专题设计
夏之 专题设计
jay li
?
赤骥 用户研究入门
赤骥 用户研究入门赤骥 用户研究入门
赤骥 用户研究入门
jay li
?

Browser Object Model