🧵 Web Workers = Parallel Processing
Single thread yeterli değil. Web Workers ile background processing yapın.
🎯 Web Worker Implementation
// 1. Worker File (worker.js)
self.addEventListener('message', (e) => {
const data = e.data;
const result = heavyComputation(data);
self.postMessage(result);
});
function heavyComputation(data) {
// CPU-intensive iÅŸlem
let result = 0;
for (let i = 0; i < 1000000000; i++) {
result += i;
}
return result;
}
// 2. Main Thread
const worker = new Worker('worker.js');
worker.addEventListener('message', (e) => {
console.log('Result from worker:', e.data);
updateUI(e.data);
});
worker.addEventListener('error', (error) => {
console.error('Worker error:', error);
});
// 3. Send Data
worker.postMessage({ task: 'calculate', data: [1, 2, 3, 4, 5] });
// 4. Terminate Worker
worker.terminate();
// 5. Shared Worker (Multiple tabs)
const sharedWorker = new SharedWorker('shared-worker.js');
sharedWorker.port.start();
sharedWorker.port.postMessage('Hello from tab 1');
// 6. Worker with Transferable Objects
const buffer = new ArrayBuffer(1024);
const view = new Int32Array(buffer);
worker.postMessage(view, [buffer]); // Transfer ownership
✅ Web Worker Kullanım Alanları
- ✓ Heavy computations
- ✓ Image processing
- ✓ Data parsing
- ✓ Encryption
- ✓ Web scraping
Web Workers, JavaScript’in en güçlü özelliklerinden biridir. UI thread’ini bloklamadan heavy iÅŸlemler yapın.
