জাভাস্ক্রিপ্ট একটি একক-থ্রেডেড পরিবেশে চালানোর জন্য ডিজাইন করা হয়েছে, যার অর্থ একাধিক স্ক্রিপ্ট একই সময়ে চলতে পারে না৷ এমন একটি পরিস্থিতি বিবেচনা করুন যেখানে আপনাকে UI ইভেন্টগুলি পরিচালনা করতে হবে, ক্যোয়ারী করতে হবে এবং প্রচুর পরিমাণে API ডেটা প্রক্রিয়া করতে হবে এবং DOM ম্যানিপুলেট করতে হবে৷
সিপিইউ ব্যবহার বেশি হলে জাভাস্ক্রিপ্ট আপনার ব্রাউজার হ্যাং করবে। আসুন একটি সাধারণ উদাহরণ নেওয়া যাক যেখানে জাভাস্ক্রিপ্ট একটি বড় লুপের মধ্য দিয়ে যায়:
<!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> "বিগ লুপ" বোতামে ক্লিক করলে, নিম্নলিখিতটি দৃশ্যমান হয়:

উপরে ব্যাখ্যা করা পরিস্থিতিটি ওয়েব ওয়ার্কারদের ব্যবহার করে পরিচালনা করা যেতে পারে যারা ব্যবহারকারীর ইন্টারফেসকে বাধা না দিয়ে গণনাগতভাবে ব্যয়বহুল সমস্ত কাজ করবে এবং সাধারণত আলাদা থ্রেডে চলবে৷