JavaScript
Public
Web Worker for CPU-Heavy Calculations
Move expensive calculations off the main thread and return the result with postMessage.
#javascript
#web-worker
#performance
#frontend
JavaScript
// statistics.worker.js
self.addEventListener('message', (event) => {
const numbers = event.data;
const total = numbers.reduce(
(sum, value) => sum + value,
0,
);
self.postMessage({
total,
average: numbers.length
? total / numbers.length
: 0,
});
});
// main.js
const worker = new Worker(
new URL('./statistics.worker.js', import.meta.url),
{ type: 'module' },
);
worker.addEventListener('message', (event) => {
console.log('Worker result:', event.data);
});
worker.addEventListener('error', (event) => {
console.error('Worker failed:', event.message);
});
worker.postMessage([12, 18, 25, 31, 44]);