我们的志愿者还没有将这篇文章翻译为 中文 (简体)。加入我们帮助完成翻译!
您也可以阅读此文章的English (US)版。
The SharedWorker() constructor creates a SharedWorker object that executes the script at the specified URL. This script must obey the same-origin policy.
If the URL has an invalid syntax or if the same-origin policy is violated, a DOMException of type SECURITY_ERR is thrown.
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, options);
Parameters
- aURL
- A
DOMStringrepresenting the URL of the script the worker will execute. It must obey the same-origin policy. - 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
SecurityErroris raised if the document is not allowed to start workersNetworkErroris raised if the MIME type of one of the script istext/csv,image/*,video/*, oraudio/*. It should always betext/javascript.SyntaxErroris raised if aURL cannot be parsed.
Example
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
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support | 4 | 29.0 (29.0) | No support | 10.60 | 5 No support 6.1 |
name option |
(Yes) | 55 (55) | ? | ? | ? |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Support | No support | No support | 33.0 (33.0) | No support | 11.5 | 5.1 No support 7.1 |
name option |
? | (Yes) | 55.0 (55) | ? | ? | ? |
See also
- The
SharedWorkerinterface it belongs to.