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
. - 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 | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'SharedWorker()' in that specification. |
Living Standard |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
See also
- The
SharedWorker
interface it belongs to. - another multiply demo