JavaScript ได้รับการออกแบบให้ทำงานในสภาพแวดล้อมแบบเธรดเดียว หมายความว่าสคริปต์หลายตัวไม่สามารถทำงานพร้อมกันได้ พิจารณาสถานการณ์ที่คุณต้องจัดการกับเหตุการณ์ UI สืบค้นและประมวลผลข้อมูล API จำนวนมาก และจัดการ DOM
JavaScript จะหยุดเบราว์เซอร์ของคุณในสถานการณ์ที่มีการใช้งาน CPU สูง เรามาดูตัวอย่างง่ายๆ ที่ Javascript ทำงานวนไปวนมา:
<!DOCTYPE HTML> <html> <head> <title>Big for loop</title> <script> function bigLoop(){ for (var i = 0; i <= 10000; i += 1){ var j = i; } alert("Completed " + j + "iterations" ); } function sayHello(){ alert("Hello sir...." ); } </script> </head> <body> <input type = "button" onclick = "bigLoop();" value = "Big Loop" /> <input type = "button" onclick = "sayHello();" value = "Say Hello" /> </body> </html>
เมื่อคลิกปุ่ม “Big Loop” จะมองเห็นสิ่งต่อไปนี้:
สถานการณ์ที่อธิบายข้างต้นสามารถจัดการได้โดยใช้ Web Workers ซึ่งจะทำงานทั้งหมดที่มีราคาแพงในการคำนวณโดยไม่ขัดจังหวะส่วนต่อประสานผู้ใช้และโดยทั่วไปจะทำงานบนเธรดแยกกัน