SharedWorker()
The SharedWorker() constructor creates a SharedWorker object that executes the script at the specified URL. This script must obey the same-origin policy.
Note: there is disagreement among browser manufacturers about whether a data URI is of the same origin or not. Although Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) and later accept data URIs, that's not the case in all other browsers.
Syntax
var myWorker = new SharedWorker(aURL, name); var myWorker = new SharedWorker(aURL, options);
Parameters
- aURL
-
A
DOMStringrepresenting the URL of the script the worker will execute. It must obey the same-origin policy. - name Optional
-
A
DOMStringspecifying an identifying name for theSharedWorkerGlobalScoperepresenting the scope of the worker, which is mainly useful for debugging purposes. - options Optional
-
An object containing option properties that can set when creating the object instance. Available properties are as follows:
-
type: ADOMStringspecifying the type of worker to create. The value can beclassicormodule. If not specified, the default used isclassic. -
credentials: ADOMStringspecifying the type of credentials to use for the worker. The value can beomit,same-origin, orinclude. If not specified, or if type isclassic, the default used isomit(no credentials required). -
name: ADOMStringspecifying an identifying name for theSharedWorkerGlobalScoperepresenting the scope of the worker, which is mainly useful for debugging purposes.
-
Return value
The created worker.
Exceptions
- A
SecurityErroris raised if the document is not allowed to start workers, for example if the URL has an invalid syntax or if the same-origin policy is violated. - A
NetworkErroris raised if the MIME type of the worker script is incorrect. It should always betext/javascript(for historical reasons other JavaScript MIME types may be accepted). - A
SyntaxErroris raised if aURL cannot be parsed.
Examples
The following code snippet shows creation of a SharedWorker object using the SharedWorker() constructor and subsequent usage of the object:
var myWorker = new SharedWorker('worker.js'); myWorker.port.start(); first.onchange = function() { myWorker.port.postMessage([first.value,second.value]); console.log('Message posted to worker'); } second.onchange = function() { myWorker.port.postMessage([first.value,second.value]); console.log('Message posted to worker'); } myWorker.port.onmessage = function(e) { result1.textContent = e.data; console.log('Message received from worker'); }
For a full example, see our Basic shared worker example (run shared worker.)
Specifications
| Specification |
|---|
| HTML Standard (HTML) # dom-sharedworker-dev |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
SharedWorker |
4 |
79 |
29 |
No |
10.6 |
5-7 |
No |
No |
33 |
11-14 |
5-7 |
4.0-5.0 |
mime_checks |
No
See Chromium bug 794548.
|
No
See Chromium bug 794548.
|
81 |
No |
No
See Chromium bug 794548.
|
No |
No
See Chromium bug 794548.
|
No
See Chromium bug 794548.
|
81 |
No
See Chromium bug 794548.
|
No |
No
See Chromium bug 794548.
|
options_name_parameter |
Yes |
79 |
55 |
No |
? |
No |
No |
No |
55 |
No |
No |
4.0-5.0 |
See also
- The
SharedWorkerinterface it belongs to. - another multiply demo
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker