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
DOMString
representing the URL of the script the worker will execute. It must obey the same-origin policy. - name Optional
-
A
DOMString
specifying an identifying name for theSharedWorkerGlobalScope
representing 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
: ADOMString
specifying the type of worker to create. The value can beclassic
ormodule
. If not specified, the default used isclassic
. -
credentials
: ADOMString
specifying 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
: ADOMString
specifying an identifying name for theSharedWorkerGlobalScope
representing the scope of the worker, which is mainly useful for debugging purposes.
-
Return value
The created worker.
Exceptions
- A
SecurityError
is 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
NetworkError
is 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
SyntaxError
is 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
SharedWorker
interface 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