重複の可能性:
setTimeout(fn, 0) が時々役立つのはなぜですか?
jQuery 1.8のソースを読んで、
setTimeout を 0 ミリ秒の遅延で実行するのはなぜですか? (コールバックを実行する代わりに?)
https://github.com/jquery/jquery/blob/1.8.0/src/ajax/xhr.js#L196
if ( !s.async ) {
callback();
} else if ( xhr.readyState === 4 ) {
// (IE6 & IE7) if it's in cache and has been
// retrieved directly we need to fire the callback
//-------->// WHY do setTimeout with 0 ms delay ?
setTimeout( callback, 0 );
} else {
handle = ++xhrId;