πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Web Workers

Web Foundations🟒 Free Lesson

Advertisement

Web Workers

Background threads, message passing, and performance optimization.

Overview

Web Workers run JavaScript in background threads.

Key Concepts

  • Dedicated Workers β€” Single script connection
  • Shared Workers β€” Multiple connections
  • Message Passing β€” Communication via postMessage
  • No DOM Access β€” Workers can't access DOM
  • OffscreenCanvas β€” Canvas rendering in worker

Code Examples

<button id="start">Start Calculation</button>
<div id="result"></div>

<script>
// Create worker
const worker = new Worker('worker.js');

worker.postMessage({ numbers: [1, 2, 3, 4, 5] });

worker.onmessage = (e) => {
  document.getElementById('result').textContent = 
    `Result: ${e.data.result}`;
};

document.getElementById('start').addEventListener('click', () => {
  const numbers = Array.from({ length: 1000000 }, () => 
    Math.floor(Math.random() * 1000)
  );
  worker.postMessage({ numbers });
});
</script>


self.onmessage = (e) => {
  const { numbers } = e.data;
  
  // Heavy computation
  const result = numbers.reduce((acc, num) => {
    return acc + Math.sqrt(num);
  }, 0);
  
  self.postMessage({ result });
};

<script>
const sharedWorker = new SharedWorker('shared-worker.js');
sharedWorker.port.start();

sharedWorker.port.postMessage({ action: 'connect' });

sharedWorker.port.onmessage = (e) => {
  console.log('Received:', e.data);
};
</script>


const connections = new Set();

self.onconnect = (e) => {
  const port = e.ports[0];
  connections.add(port);

  port.onmessage = (event) => {
    // Broadcast to all connections
    connections.forEach(conn => {
      conn.postMessage(event.data);
    });
  };

  port.start();
};

Practice

Offload heavy calculations to a Web Worker and display progress.

⭐

Premium Content

Web Workers

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert Web Development Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement