文章出處

W3C標準是萬維網聯盟,

其他的可以參考萬維網版本的更新內容

一、W3C標準

二、W3C DOM事件

三、冒泡事件

四、捕獲事件

五、對比分析

 

一、W3C標準

其實網頁是由三分部組成:1、結構(structure),2、表現(prentation),3、行為(behavior)

對應的標準也分為三部分:1、結構化標準語言,主要包括xml和xhtml;2、表現標準語言,主要包括css;3、行為標準語言主要包括對象模型(W3C DOM)和ECMAScript。這些標準大部分由W3C起草和發布,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。

1、結構化標準語言,主要包含可擴展標記語言(XML)和可擴展超文本標記語言(XHTML)。

xml設計之初是為了補充html的,但是隨著xml滿足網絡信息發布的需要,逐漸應用在數據的轉換和描述上。xml數據轉換功能十分強大,但是在面對成千上萬個站點信息直接使用xml還不行,所以引入XHTML,目的是為了把html向xml過渡。

2、表現標準語言,主要是包含css樣式。主流瀏覽器正在逐漸支持,程序員也開始利用CSS3代替以往冗長的舊代碼。使用css和xhtml是為了讓把結構和樣式進行分離,便于代碼的維護。

3、行為標準語言,主要包好對象模型(W3C DOM)和ECMAScript。DOM是一種與瀏覽器,平臺,語言的接口。解決了設計師和web開發者提供一個標準,讓他們訪問站點中的數據,腳本,表現層對象。ECMAScript是ECMA(European Computer Manufacturers Association)制定的標準腳本語言(JAVAScript)。現推薦遵循的是ECMAScript 262

 

二、冒泡事件模型

什么是冒泡事件,在面試中面試官經常會問你相關的一些前端的開發基本功,現在自己總結一下,

答:冒泡事件就是從最精確的目標(target)到最不精確的目標進行順序觸發。

 

三、事件捕獲模型

什么是事件捕獲?

答:事件捕獲是從最不精確的目標到最精確的目標進行順序觸發。

 

四、W3C DOM對象模型

什么是DOM對象模型?

答:DOM對象模型是包含了“冒泡事件“和“事件捕獲”這兩個事件模型。兩種事件流會觸及所有的對象,從document開始,到document結束。

 

五、 對比分析:

1、支持W3C標準的瀏覽器的給元素添加事件的方法,使用addeventListener函數,使用樣例addEventListener(event,fn,useCapture)來設置事件是在冒泡時執行還是在事件捕獲時執行。第三個參數使用布爾型,true或者false來表示;

使用true,意思就是事件捕獲

使用false,意思就是冒泡事件

2、不支持W3C標準的瀏覽器(IE)給元素添加事件方法,使用attachevent函數,使用樣例attachevent(event,fn),默認的是false,起到了兼容瀏覽器效果,也就是說,IE瀏覽器只支持事件冒泡。

看這張圖就很清楚了事件捕獲和冒泡原型。

3、事件捕獲階段:事件從最上一級的標簽開始查找,直到捕獲事件目標

事件冒泡階段:事件從事件目標開始,往上冒泡直到頁面的最上一級標簽

 

4、舉一個例子

<div>
  <p>點我看效果</p>
</div>

這兩個元素都綁定了click事件,如果用戶點擊了p元素,他在div和p元素上都觸碰了click事件,那么先執行哪一個事件(事件處理順序)?

 事件捕獲

當你使用事件捕獲時,父級元素先觸發,子級元素后觸發,也就是說div先觸發,p后觸發。

事件冒泡

當你使用事件冒泡時,子級元素先觸發,父級元素后出發,也就是說p先觸發,div后觸發。

W3C模型

 在W3C模型中,任何事件發生,都是從頂級元素開始進行事件捕獲,直到事件到達事件源元素。然后,再從事件源元素往上進行事件冒泡,直到到達document。采用的方法是addeventListener函數,

ele.addEventListener('click',doSomething2,true)

true=捕獲

false=冒泡

傳統的綁定事件方式

ele.onclick = doSomething2

這種綁定方式,采用的是冒泡事件

IE瀏覽器

IE只支持事件冒泡,不支持事件捕獲,不支持addeventListener函數,她提供了另外一個函數attachevent。

ele.attachEvent("onclick", doSomething2);

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()