學習Javascript異步編程 持續更新

var start = new Date;函數

setTimeout(function(){spa

var end = new Date;.net

console.log('end~~~',end-start,'ms');blog

},0);隊列

while(new Date - start < 4000){事件

if(new Date - start == 3999) console.log('end')ip

}get


運行setTimeout後開始計時,把回調函數放在延時事件隊列的最後。回調函數


全部同步的js事件完成後,setTimeout的回調函數纔會被執行,即使是setTimeout設置事件小於同步事件運行的事件,同步事件沒有執行完,setTimeout的回調函數就不會被執行同步


------------------------------------------


<div id="click">aaa</div>

<script>

window.onload=function(){

document.getElementById('click').onclick=function(){

console.log('你點擊了click');

}

var start = new Date;

while(new Date - start < 1000){}

}

</script>


當頁面加載完成後,點擊id#click後,js會把當前點擊的事件放到隊列中去,等同步的js執行完成後再去執行onclick事件。

-----------------------------------------

未完待續

文章來源 :http://my.oschina.net/edire/blog/347702

相關文章
相關標籤/搜索