JavaScript異歩
1371 ワード
1.一般的な非同期操作ネットワーク要求: IO操作: タイミング関数: 2.event-loop
参见:阮一峰--JavaScript運行メカニズム詳細解:Event-look JavaScriptは単スレッド言語です. すべてのタスクは列に並び、前のタスクが終わったら、後のタスクが実行されます. のすべてのタスクは、同期タスク(synchronous)、もう一つは非同期タスク(asynchronous)に分けられます. (1)すべての同期タスクがメインスレッド上で実行され、実行スタックが形成される.(2)メインライン以外に、「タスクキュー」が存在します.非同期タスクに実行結果がある限り、「タスクキュー」にイベントを配置します.(3)一旦「実行スタック」の中のすべての同期タスクが実行されると、システムは「タスクキュー」を読み込み、中にどのようなイベントがあるかを確認します.これらの対応する非同期タスクは、待ち状態を終了し、実行スタックに入り、実行を開始する.(4)メインスレッドは上記の第3ステップを繰り返します. マスタスレッドが「タスクキュー」からイベントを読み出すと、このプロセスはループが継続されるため、全体のこのような動作機構は、Event Loop(イベントサイクル)とも呼ばれる. 3.jQuery-1.5以降のajax
伝統ajax:
ajax
http.get
readdir
readFile
setTimeout
setInterval
参见:阮一峰--JavaScript運行メカニズム詳細解:Event-look
伝統ajax:
var ajax = $.ajax({
url: 'data.json',
success: function () {
console.log('success')
},
error: function () {
console.log('error')
}
})
console.log(ajax) // XHR
jQuery-1.5以降のajax:var ajax = $.ajax('data.json')
ajax.done(function () {
console.log('success 1')
})
.fail(function () {
console.log('error')
})
.done(function () {
console.log('success 2')
})
console.log(ajax) // deferred