
ç§ãã¡ã¯çãajaxãšnode.jsã«ã€ããŠèããããšããããŸãã 圌ãã¯èªåœã ãã§ãªãããŠã§ãéçºè
ããŒã«ãããã§ããã£ãããšå®çããŠããŸãã Ajax-ãµãŒããŒããããŒãžãžã®ããŒã¿ã®éåæãã«ãããŒã-éåæIOãåãããã¬ãŒã ã¯ãŒã¯ã ããããJavascriptã®ãããª
ã·ã³ã°ã«ã¹ã¬ããèšèªã¯ãã©ã®ããã«åãéåææ§ãå®è£
ããã®ã§ããããïŒ
ããããã¿ã€ãã«ãããã§ã«æšæž¬ãããŠããããã«ãã¡ã€ã³ã«ãŒãïŒãã¡ã€ã³ã«ãŒããïŒã«ã€ããŠèª¬æããŸãã
仿§éã
é ãããå§ããŸãããã ãJavascriptãããECMAScriptãããESãããJSããæå³ããŸãïŒãã¡ãããããªããMozillaã§åããŠããŠãBrendan AichãšåŒã°ããŠããªãå Žåãé€ããŸãïŒã ECMAScript仿§ããå§ããããšã¯è«ççã§ãã
ECMA-262ãéããšãã¹ã¯ãªãããæ©èœããåŸã«äœããã¹ãããã¹ã¯ãªãããäžæåæ¢ãŸãã¯åæ¢ããæ¹æ³ã«ã€ããŠäœãèšãããŠããªãããšãããããŸãã ããã¯ããããå®è¡ãããç°å¢ã«æ®ãããããšãæå³ããŸãã
WSHã§è¡ãããæ¹æ³
ããããæãç°¡åãªç°å¢ã¯ãWindows Script Hostãå¥åWSHã§ãã ç§ã¯ããã»ããµã100ïŒ
ããŒãããæåŸãŸã§åããæ»ã«ãŸãã-ããã¯ãšãŠãåçŽãªã©ã€ããµã€ã¯ã«ã§ãã å®è¡å¶åŸ¡æ©èœã®ãã¡ãå€ããããã
sleep()
ã®ã¿ãã€ã³ã¿ãŒããªã¿ãŒãnããªç§é忢ããŸãã
WScript.echo(new Date() + ': Hello world!'); WScript.sleep(1000); WScript.echo(new Date() + ': Goodbye, cruel world!');
åçŽãªã¿ã¹ã¯ã®å Žåã¯ããã§ååã§ãããããå°é£ãªã¿ã¹ã¯ã¯é害ç©ã³ãŒã¹ã«ãªãå¯èœæ§ããããŸãã
倩äºããã®äŸïŒã©ã€ãã©ãªã«ã¯ãããŒããŒãã®ãªãWindows 98äžã«ç«¯æ«ããããŸãããInternet Explorer 6ã«ã¯ãæžç±ã®ã«ã¿ãã°ãå
šç»é¢ã§è¡šç€ºãããŸãã è¥ãããŒãªã¬ã³ã¯IE6ãã·ã£ããããŠã³ããããã峿žé€šå¡ãIE6ãç«ã¡äžããã®ã¯å®¹æã§ã¯ãããŸããã§ããã ã«ãªãæ¹æ³
IEãèµ·åããããªãããŒãªååã§ã°ããŒãã«ãªã¹ãã¬ã€ã«ã³ãŒã«ããã¯ãäœæããŠå®è¡ãã颿°ãäœæããŸãã
function startIE () { var ie = WScript.CreateObject("InternetExplorer.Application", "ieEvent_"); ie.Navigate("http://127.0.0.1/"); ie.Visible = true; ie.FullScreen = true; } var ieEvent_OnQuit = startIE; startIE();
åäœããŸããã ããæ£ç¢ºã«ã¯ãIEã¯èµ·åããŸãããã€ã³ã¿ããªã¿ã¯æåŸãŸã§å®äºããéãã«æ»ã«ãŸãã åœŒãæ°žé ã®ç ãã«ã€ãå¿
èŠããããŸãã ãã§ãã§ã
sleep(Infinity)
WSHã¯ã©ã®ããã«ç¥ããªãã®ã§ã60ç§éã¹ãªããããç¡éã«ãŒããè¡ããŸãã ã©ããããããæ¬¡ã®ããã«ãªããŸãã
function startIE () { var ie = WScript.CreateObject("InternetExplorer.Application", "ieEvent_"); ie.Navigate("http://127.0.0.1/"); ie.Visible = true; ie.FullScreen = true; } var ieEvent_OnQuit = startIE; startIE(); while (true){ WScript.sleep(60000); }
峿žé€šå¡ã¯å¹žãã«ãªããŸããã äºæ³ãããããã«åªããŠããŸã-IEã¯0ã59ç§ã®ä»»æã®æéåŸã«ã§ã¯ãªããããã«åèµ·åããŸãã ãã€ãã³ããOnQuitãéèš³è
ã®ç¡ç ãäžæããããšãããããŸããã åæã«ã
sleep
åæãããããžãŒã«ãŒãã®ã¿ãæ®ãå Žåããšã¯ã¹ãããŒã©ãŒã¯OnQuitãèµ·åããããšããã§ããŸããã
ããŠãåå§çãªã¡ã€ã³ã«ãŒãããããŸãã ç°¡åã«èª¬æãããšã次ã®ããã«èª¬æã§ããŸãã
- éèš³è
ã®ä»äºã¯ãããã°ã©ã ã®å®äºã§çµãããŸããã
- ã³ãŒã«ããã¯ã³ãŒãã¯ãã€ã³ã¿ãŒããªã¿ãŒãäœãããªãå Žåã«ã®ã¿æ©èœããŸãã 2ã€ã®ã³ãŒããåæã«æ©èœãããããšã¯ã§ããŸããã
ããã¯ãã©ãŠã¶ã§ã©ã®ããã«è¡ãããŸãã
ãå®çŸããŠæ»ãã ãã¢ãããŒãã¯ããã©ãŠã¶ãŒã«é©åããŸããã ãã以å€ã®å ŽåãJSãäž»ãªç®çã«äœ¿çšããæ¹æ³-ã©ãããã¯ãªãã¯ãããšè¿·æãªãããã¢ãããéãã«ã¯ïŒ ãã©ãŠã¶
ïŒããã³node.jsïŒã§ã¯ãã¡ã€ã³ã«ãŒããé
ç·ãããŠããŸãã ãããŠéåžžã«æ·±ããã«ãŒãã¹ã¯ãªããã§ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããããšããäžå¯èœãªå ŽåããããŸãã
ååã¯åçŽã§ãããã¥ãŒããããå®è¡ãããã³ãŒãã¯ãã¹ãŠãã¥ãŒã«å
¥ããŸãã ãã¥ãŒã空ã§ãªãå Žåãã€ã³ã¿ãŒããªã¿ãŒã¯ãã¥ãŒã®æåã®èŠçŽ ãåãã§å®è¡ããŸãã ãã¥ãŒã空ã®å Žåãäœããå
¥ããŸã§åŸ
æ©ããŸãã
ãã®ãããªãã¥ãŒã®ãã³ãŒããã¯ãããŒãžäžã®åã蟌ã¿ããã³ãªã³ã¯ãããã¹ã¯ãªãããã€ã³ã¿ãŒãã§ãŒã¹ã€ãã³ãïŒ
onclick
ã
onmouseover
ã...ïŒãã¿ã€ããŒã³ãŒã«ããã¯ïŒ
setTimeout
ã
setInterval
ïŒããŸãã¯ãã©ãŠã¶ãŒãªããžã§ã¯ãïŒ
xhr.onreadystatechange
ïŒã®
xhr.onreadystatechange
ãã ããæå³ã§ã¯ããã©ãŠã¶ããŒã¹ã®JSã®ã¿ã€ããŒãšã€ãã³ãã«éãã¯ãããŸããã
ããŠãé çªã«ã
èŠæ
3ã€ã®æ©èœïŒ
alert
ã
prompt
ãconfirm-ãã©ãŠã¶ãŒããŒã¹ã®javascriptå
šäœã§ç¬ç«ããŠããŸãã ãããããç§ã®ããã«ãããªãã®JSãšã®ç¥ãåãã¯ãã®ãã¡ã®äžäººããå§ãŸã£ãã®ã§ãããã ãããã«ããŠãããããããã¢ãŒãã«ãŠã£ã³ããŠãäœæããã€ã³ã¿ãŒããªã¿ãŒã¯éãããããŸã§ã¹ãªãŒãç¶æ
ã«ãªããŸãã ããã¯ããã©ãŠã¶ãŒã®ã¡ã€ã³ã«ãŒããäžæåæ¢ããå¯äžã®æ¹æ³ã§ãïŒãããã¬ãŒã䜿çšããã«ïŒã
以åã¯ããã©ãŠã¶ã§ã¯ãäžéšã®ããã¯ã°ã©ãŠã³ãã¿ãã®
alert
ãã€ã³ã¿ãŒãã§ãŒã¹å
šäœããããã¯ããããšããããŸããããGoogle Chromeã¯äŸç¶ãšããŠããã«æ©ãŸãããŠããŸãã ãã ããçŸä»£ã®ã€ã³ã¿ãŒãããã§ã¯ããããã®æ©èœã®äœ¿çšãæºããããšãã§ããªãå ŽåããããŸãã ãããã£ãŠããããã䜿çšããŸããã
setTimeoutãsetInterval
ãã©ãŠã¶ãŒããŒã¹ã®JSã«ã¯
sleep
æ©èœã¯ãããŸãã-ã€ã³ã¿ãŒããªã¿ãŒã¯åæ¢ããŸããïŒ
alert
ãªã©ãé€ãïŒã ãã ãã
setTimeout
颿°ã䜿çšããŠã颿°ã®å®è¡ããå®å
šã«ãé
ãããããšãã§ããŸãã
æ§æã¯ã·ã³ãã«ã§ç°¡æœã§ãïŒ
setTimeout(fn, timeout)
ã
fn
颿°ã¯
timeout
ããªç§ã®
timeout
åŸããæ©ãèµ·åãããŸãã ãªãçŽåã ãã§ãªãã
æ£ç¢ºã«éããŠããªãã®ã§ããïŒ ãã³ãããã®äžãèŠãŠãã ããã
setTimeout
åŒã³åºãã¯ãæ°ããã¿ã€ããŒãç»é²ããŸãïŒãšããã§ããã®èå¥åãšãã®é¢æ°ã¯åŒã³åºããããšæ»ããŸãïŒã æéãçµéããã€ã³ã¿ãŒããªã¿ãŒãã³ãŒãã®å®è¡ã«å¿ãããªãããšã倿ãããšã颿°
fn
ããã«åŒã³åºãããŸããããã¯äºçްãªã±ãŒã¹ã§ãã
éãæªãããã®æç¹ã§ãJSãšã³ãžã³ããã¥ãŒã®äžéšãåãã§ããå Žåã¯ããã¥ãŒã空ã«ãªããŸã§æåã«åŸ
æ©ããå¿
èŠããããŸãã ãä»ãããã³ãŒã«ããã¯ãèµ·åããããšããåžæã¯ãã¹ãŠæ©èœããªããããJavascriptã¯ã·ã³ã°ã«ã¹ã¬ããã§ãã æ¬¡ã«ããã¥ãŒã空ã«ãªããšãã€ã³ã¿ãŒããªã¿ãŒã¯ãã¹ãŠã®ã¿ã€ããŒã調ã¹ãã©ã®ã¿ã€ããŒãæéåãã«ãªã£ããã確èªããŸãã ãã¹ãŠã®çµéã¿ã€ããŒã®ãã¡ãçãã¿ã€ã ã¢ãŠãã§èšå®ããããã®ãéžæãããè€æ°ããå Žåã¯ããã¹ãŠã®åã«ã€ã³ã¹ããŒã«ããããã®ãéžæãããŸãã çŸåšããã®ãããªãæãæéåãã®ãã¿ã€ããŒã¯ãå®è¡ãã¥ãŒã®æ°ããèŠçŽ ãçæããŸãããããŠã-ã€ã³ã¿ããªã¿ã¯åã³äœãããå¿
èŠããããŸã-空ã§ãªããã¥ãŒãåè§£ããŸãã
setTimeout
ã¿ã€ããŒ
setTimeout
åãããšãåé€ãããŸãã ã€ãŸãã
setTimeout
ã¯2å
setTimeout
ããŸããã
ããŠãããã€ãã®äŸç€ºçãªã³ãŒãïŒ
console.log('script started'); setTimeout(function(){ console.log('timed out function'); }, 5); var endDate = +new Date() + 10; while (+new Date() < endDate){
ã³ã³ãœãŒã«ã«ã¯ä»¥äžã衚瀺ãããŸãã
ã¹ã¯ãªããéå§
ã¹ã¯ãªããçµäº
ã¿ã€ã ã¢ãŠãæ©èœ
ãã®é åºã§ã ã¿ã€ããŒã5ããªç§åŸã«æéåãã«ãªã£ããšããäºå®ã«ãããããããåœæã®ãšã³ãžã³ã¯ãæ¥ä»ãšåºæºãåžžã«æ¯èŒãããšããéåžžã«éèŠãªã¿ã¹ã¯ãåŠçããŠããŸããã ãããã£ãŠãé
延颿°ã¯ãçµäºãããŸã§ããã«5ããªç§åŸ
æ©ããå¿
èŠããããŸããã ãã£ã¡ ãããããããæãéèŠã§ãã
clearTimeout(timeoutId)
颿°ã䜿çšãããšããã€ã§ãã¿ã€ããŒããã£ã³ã»ã«ã§ããŸãã ã¿ã€ããŒããã§ã«çºç ²ããŠããå Žåãããããã£ã³ã»ã«ããããšã¯ãäžè¬ã«ããã§ã«ç¡æå³ã§ãããããã¯ãšã©ãŒãšã¯èŠãªãããŸããã
ã¿ã€ããŒããã£ã³ã»ã«ããæéã¯ãããŸããïŒ
var timeoutId; setTimeout(function(){ console.log('timed out function'); clearTimeout(timeoutId); }, 5); timeoutId = setTimeout(function(){ console.log('timed out function 2'); }, 5); var endDate = +new Date() + 10; while (+new Date() < endDate){
ãã®äŸã®ãããªã±ãŒã¹ã¯å®éã«ã¯ãã£ãã«çºçããŸããããããã§ãçºçããŸãã äž¡æ¹ã®ã¿ã€ããŒã¯5ããªç§ã«èšå®ãããŠãããç¡æå³ã§å®¹èµŠã®ãªãã¢ã¯ãã£ããã£ãçµäºãããšãäž¡æ¹ãšããã§ã«æéãåããŠããŸãã ããããäž¡æ¹ã®ã¿ã€ããŒã®é
å»¶ã®ããªç§æ°ã¯åãã§ããããæåã«èšå®ããããããæåã®ã¿ã€ããŒãæåã«ãæ®åœ±ããããŸãã ãŸãããã§ã«æéåãã«ãªã£ãŠãã2çªç®ã®ã¿ã€ããŒãæ£åžžã«åé€ãããæ®åœ±ãã§ããªããªããŸãã
setInterval
ã¯ãã¿ã€ããŒãå®è¡ãã¥ãŒã®èŠçŽ ãçæããåŸã«åé€ãããªããšããç¹ã§
setTimeout
ãšç°ãªããŸãã 代ããã«ããã®å€ã¯å
ã®å€ã«ãªã»ãããããŸãã ããã«ããã
setTimeout
å
ã§
setTimeout
ãåŒã³åºãããšãªãã宿çã«é¢æ°ãåŒã³åºãããšãã§ããŸãã
setInterval
ã¿ã€ããŒã«ãŠã³ã¿ãŒã¯ãã¿ã€ããŒãããªã¬ãŒãããŠããªã»ããããããã¡ã€ã³ã«ãŒããã¥ãŒã空ã®å Žåã«ã®ã¿ãªã»ãããããããšã«æ³šæããŠãã ããã ãã®ãããæéãšãšãã«ãã¹ãªãããããå¯èœæ§ããããŸãã
蚌æ setInterval(function(){ console.log(+new Date()); }, 1000); setTimeout(function(){ var endDate = +new Date() + 2000; while (+new Date() < endDate){
æ®ãã¯åãã§ãã ééã®ã¿ããå¥ã®é¢æ°
clearInterval
ã«ãã£ãŠãªãŒããŒã©ã€ããããŸãã
æåŸã«ã
setTimeout
ãŸãã¯
setInterval
ã«4ããªç§æªæºã®ã¿ã€ã ã¢ãŠãå€ãæž¡ãããå Žåã代ããã«æ£ç¢ºã«4ããªç§ã䜿çšãããŸãã ããã¯ç§ã«ãšã£ãŠäžæå¿«ãªé©ãã§ããã ããããæããã«ãããã¯è¯ãããšã§ã-ã©ã³ãã ã«èšå®ããã0ããªç§ã®ééã¯ããã¹ãŠã®ãã©ãŠã¶ã®ã¡ã€ã³ã«ãŒããè¿
éãã€å¹ççã«æ¶ãå»ããŸãã æ¬åœã«ãŒãã®ã¿ã€ã ã¢ãŠãã§é¢æ°ãå®è¡ããã«ã¯ã
setImmediate
䜿çšã
setImmediate
ã ãã®æ©èœã¯ããããã«äœ¿ããããã®ãšããŠã¯ãŸã ããŸãåºãå©çšã§ããŸããããããªãã£ã«ããããŸãã
<ã¹ã¯ãªãã>
ãã¹ãŠã®ã¹ã¯ãªããã¯ã¡ã€ã³ã«ãŒããã¥ãŒã«åé¡ãããŸãã äžæ¹ã§ã¯ãããã¯
async
ãš
defer
䜿çšãèš±å¯ããŸãã äžæ¹ããããã®å±æ§ããªããšãäºæããªãçµæã«ãªãå¯èœæ§ããããŸãã
2ã€ã®ã¹ã¯ãªãããããŒãžã«åã蟌ãŸããæåã®ã¹ã¯ãªããã4ããªç§ã®ã¿ã€ã ã¢ãŠããèšå®ãããã®åŸ10ããªç§é
ããªã£ãå Žåã¯ã©ããªããŸããã ã¿ã€ã ã¢ãŠãã³ãŒã«ããã¯ã¯ãã€æ©èœããŸãã-2çªç®ã®ã¹ã¯ãªããã®åããŸãã¯åŸïŒ
ã³ãŒã <!DOCTYPE html> <script> console.log('script 1'); setTimeout(function(){ console.log('setTimeout from script 1'); }, 5); var endDate = +new Date() + 10; while (+new Date() < endDate){ </script> <script> console.log('script 2'); </script>
FirefoxãChromeãããã³IE10ã¯ã2çªç®ã®ã¹ã¯ãªããã®åŸã«ã¿ã€ã ã¢ãŠãããŸãã Opera-2çªç®ã®ã¹ã¯ãªããã®åã
ãããŠã2çªç®ã®ã¹ã¯ãªãããåã蟌ãŸããŠããªãå Žåãã€ã³ã©ã€ã³ã§ã¯ãªããå€éšã§ããïŒ
ã³ãŒã <!DOCTYPE html> <script> console.log('script 1'); setTimeout(function(){ console.log('setTimeout from script 1'); }, 5); var endDate = +new Date() + 10; while (+new Date() < endDate){ </script> <script src="http://127.0.0.1/script.js"></script>
ãããŠãããã§ã¯ãã¹ãŠã®ãã©ãŠã¶ãŒ
ã 2çªç®ã®ã¹ã¯ãªããã®åã«ã¿ã€ã ã¢ãŠããã
å¯èœæ§ããããŸãã ãã®ç¥èãããåŠåçæçŸ©ãé€ããŠãããªãã¯äœãããã®ã§ããããïŒ èŠæ±ã®æ°ãæžããããã«ãå€ãã®å Žåãè€æ°ã®ã¹ã¯ãªããã1ã€ã«æ¥çãããŸãã ãŸããçµæã®ã¹ã¯ãªããã¯å
ã®ã¹ã¯ãªãããšã¯ç°ãªãåäœãããå ŽåããããŸãã
ã€ãã³ã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã€ãã³ããšDOM倿Žã€ãã³ãïŒ
onDOMNodeInsertedIntoDocument
ãªã©ïŒãåå¥ã«æ€èšãã䟡å€ããããŸãã
DOMããªãŒã倿Žããããšãã«çºçããã€ãã³ãã¯ãã¡ã€ã³ã«ãŒãã«è©²åœããŸããã 代ããã«ãããªãŒã倿Žãã
çŽåŸã«è§£æ±ºããŸãã
var i = 0; document.body.addEventListener('DOMSubtreeModified', function(e){ i = 42; }, false); console.log('i = ' + i);
å®ç掻ã§å€æ°ã®å€ããã®ããã«èªçºçã«å€åããã®ã¯é£ããããã§ãã ããããã€ã³ã¿ãŒãããäžã®ã©ããã§ãç¹ã«ããªãããŒãªjQueryãã©ã°ã€ã³ã翌ã§åŸ
ã£ãŠãããMutationEventãç©æ¥µçã«äœ¿çšããã°ããŒãã«ãªã¹ãã¬ã€ã«æµã蟌ãã§ãããšæããŸãã ããã«ãDOM倿Žã€ãã³ãã¯æšå¥šãããŠãããïŒéæšå¥šïŒãããªãŒã§ã®äœæ¥ã倧å¹
ã«çŠæ¢ããŠããããã䜿çšããªãã§ãã ããã
mouse-keyboard-tachevymã®ã€ãã³ãã«æ»ããŸãããã ãã®ãããªåã€ãã³ãã«ã¯ããã©ã«ãã®ã¢ã¯ã·ã§ã³ããããŸãã ããšãã°ã
mousedown
ã€ãã³ãã®ãã¿ã³ã®ããã©ã«ãã¢ã¯ã·ã§ã³ã¯ãæŒãäžãããããã¥ãŒãååŸããããšã§ãã ãããŠãã¯ãªãã¯ã«ãããªã³ã¯ã®ããã«-ã¢ãã¬ã¹ã«è¡ããŸãã åŠç颿°ã®æåã®åŒæ°ã§preventDefaultã¡ãœãã
preventDefault
åŒã³åºãããšã«ãããäžéšã®ããã©ã«ãã¢ã¯ã·ã§ã³ãå
ã«æ»ãããšãã§ããŸãã
ãããŠãããã¯2ã€ã®ããšãæå³ããŸãã ãŸããæåã«ãã³ãã©ãŒã次ã«ããã©ã«ãã®ã¢ã¯ã·ã§ã³ããããŠãã¿ã³ã¯Javascriptãã³ãã©ãŒããã¹ãããŸã§ãã¯ãªãã¯ãããŸããã æ¬¡ã«ãã¡ã€ã³ã«ãŒãã®é çªãè¿ã¥ããŸã§ããã³ãã©ãŒã¯éå§ããŸããã ãããã£ãŠãjsãšã³ãžã³ã®å€§èŠæš¡ãªèšç®ã¯ãå¿çæ§ãšåŒã°ãããã®ã«éåžžã«æªåœ±é¿ãåãŒããŸãã èšãæããã°ããã¹ãŠã倧å¹
ã«é
ããªãããŠãŒã¶ãŒãæ©ãŸãããã«ãªããŸãã ãã³ãã©ãŒããã³ã°ããŠããªãã€ãã³ããåŸ
ã€ããšã¯è«ççã«æããŸãããå®éããã¹ãŠã®ãã©ãŠã¶ãŒã§
onclick
ãããã¿ã³ã¯ãããããªãå Žåãšåãããã«é
ããªããŸãã
ãã¡ããããã©ãŠã¶éçºè
ã¯ããã«ã€ããŠäœããããããšããŠããŸãã ããšãã°ãOperaã¯ãã³ãã©ãŒãåŸ
ããã«èŠèŠçãªè¡šçŸã倿ŽããŸããããã«ããããã¬ãŒãããããã«æ»ããã«ããããšãã§ããŸãã ãŸããããŒãžã¯é£æ¥ããã¿ãã§ã®é£ããããã»ã¹ã®åœ±é¿ãåããå¯èœæ§ããããŸãããããã¯Chromeã«ã¯é©çšãããŸããã
keypress
ã€ãã³ãkeypress
å
¥åãã£ãŒã«ãå
ã®ããã¹ãã®é·ããæ±ºå®ããkeypress
å Žåãã·ãŒã±ã³ã¹ãæåã®ãã³ãã©ãŒã次ã«ããã©ã«ãã¢ã¯ã·ã§ã³ãã¯äŸç¶ãšããŠæšæºçãªã±ãŒã¹ã«åŸããŸãããå®éã®ããã¹ããšäžèŽããªãããšãããããŸãã ãã®åé¡ã®è§£æ±ºçã¯èªè
ã«ãä»»ãããŸãããŠã§ãã¯ãŒã«ãŒ
WebWorkersã¯ãæåã«ã¡ã€ã³ã«ãŒãããªãããŒãããŠããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®å¿çæ§ã®ãæ²äžããåãé€ãæ¹æ³ã§ãã å®éãããã¯ç¬èªã®ã¡ã€ã³ã«ãŒããåããå¥åã®ããã»ã¹ã§ãããã€ã³ã¿ãŒãã§ã€ã¹ãšDOMã«çµã³ä»ããããŠããŸããïŒãããŠãããã«çŽæ¥ã¢ã¯ã»ã¹ããããšãã§ããŸããïŒã
WebWorkerã¯ãã¡ãã»ãŒãžãä»ããŠãã³ã¢ãããã»ã¹ãšæä»çã«éä¿¡ããŸãã ããã«ãæ©è¡è
ããã®ã¡ãã»ãŒãžãã¡ã€ã³ããã»ã¹ã«å°éãããšãããã¯-ã¯ããã¯ã-ä»ã®ãã¹ãŠãšåããã¥ãŒã«ãªããŸãã
äžè¬ã«ãã¯ã©ã€ã¢ã³ãã§xmããwavãçæãããããã«ãã¡ã¬ãã€ãã®bzipãè§£åããå¿
èŠãããããã©ãŠã¶ãŒãWebWorkersããµããŒãããŠããå Žåã¯ããããã䜿çšããŸãã
node.jsã§ãããè¡ãæ¹æ³
ããŒãã¯éåžžã«é¡äŒŒãããã©ãŠã¶ã¢ãã«ã䜿çšããããããã®ã»ã¯ã·ã§ã³ã¯éåžžã«å°ãããªããŸãã åã
setTimeout
ãš
setInterval
ãããã³ãã¡ã€ã«ã·ã¹ãã ãšä»ã®IOã®ã€ãã³ãã¯ãåŒæ°ãç°ãªãããšãé€ããŠããã©ãŠã¶ã€ãã³ãã«äŒŒãŠããŸãã
æ©èœã®ãã¡ã颿°
process.nextTick
ã«æ³šç®ã§ããŸããããã¯
setTimeout(âŠ, 0)
ããã«æ©èœã
process.nextTick
ããäžèŠãªã¿ã€ããŒã¯äœæããŸããã node.jsã¿ã€ããŒã®èå¥åã¯ããã©ãŠã¶ã®ããã«æŽæ°ã§ã¯ãªãããªããžã§ã¯ãã§ãã ããŠãããŒãã¯4ããªç§ã®å¶éãå®å
šã«ç¡èŠããŸãã
çµè«ã®ä»£ããã«
äžèšã®ãã¹ãŠãèŠçŽããŸããã¡ã€ã³ãµã€ã¯ã«ãã©ã®ããã«æ©èœããããçè§£ãããããé·æéé
ãããªãããã«ããŸãã
ããã«èªã/衚瀺ããã«ã¯ïŒ