DOM0和DOM2
1.語法上的區別
box.onclick=function(){}
box.addEventListener('click',function(){})
2.底層運行機制上的區別
DOM0就是給元素的某個屬性綁定方法(有效綁定的方法只有一個)
DOM2是基於事件池機制完成,每增加一個綁定的方法,都會往事件池中存放一個...當事件觸發會依次執行事件池中的事情 =>發佈訂閱其實就是模擬的事件池機制 (可以給同一個元素的某個事件綁定多個不同的方法)
3.DOM2中可以給一些特殊的事件類型綁定方法,這些事件類型DOM0不支持綁定,例如:DOMContentLoaded、transitionend...
$(document).ready() => $(function(){})
VS
window.onload
DOM2的事件池機制
1.基於addEventListener/attachEvent(IE6~8)向事件池中追加方法:新版本瀏覽器會根據元素和事件類型對新增的方法做重複校驗,但是IE6~8不可以
2.當事件行爲觸發,會把事件池中的方法按照增加的順序依次執行,但是IE6~8中執行的順序是不固定的