Middle
What limitations exist for Web Worker threads?
sobes.tech AI
Answer from AI
- Lack of DOM access: Worker threads cannot directly manipulate the DOM because they run in a separate context.
- Limited access to global objects: Access to global objects like
windowanddocumentis restricted or entirely absent. Only certain globals likeself(referring toWorkerGlobalScope) are available. - Data exchange only through copying: Data exchange between the main thread and Web Worker occurs via copying, not by reference passing. This can be costly for large data volumes, but
Transferable Objectscan be used for optimization. - Limited API support: Not all Browser APIs are available inside Web Worker. For example,
localStorage,IndexedDB(though limited access might be available through certain APIs),XMLHttpRequest(replaced byfetch). file://protocol: When using thefile://protocol to load a page, Web Worker may not work due to browser security restrictions.- Script source requirement: The Web Worker script must be loaded from the same domain as the main document (same-origin policy).
// Example of creating a Web Worker
const worker = new Worker('worker.js');
// Sending data to the worker
worker.postMessage({ data: 'Hello from main thread' });
// Receiving data from the worker
worker.onmessage = function(event) {
console.log('Data from worker:', event.data);
};