SharedWorker()

这篇翻译不完整。请帮忙从英语翻译这篇文章

SharedWorker() 构造函数实例化的 SharedWorker 对象可以执行指定的 URL 的脚本。所执行的脚本必须遵守 同源策略

如果 URL 的语法无效或者违反了同源策略会抛出 SECURITY_ERR 类型的 DOMException 异常。

注意: 浏览器开发者对于 data URI 是否同源产生分歧。尽管 Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) 及之后版本支持 data URIs,其他浏览器并不能支持 。

语法

var myWorker = new SharedWorker(aURL, name);
var myWorker = new SharedWorker(aURL, options);

参数

URL参数
一个代表了 worker 将执行的脚本 URL 的 DOMString,它必须遵守同源策略。
name 可选
一个指定表示 worker 范围的SharedWorkerGlobalScope的标识名称的 DOMString,主要用于调试。
options 可选
创建实例时设定的包含了可选属性的对象。可用的属性包括:
 
  • type: 一个制定所创建 worker 类型的 DOMString。可设定的值为 classic 或者 module. 若不指定,默认值为 classic.
  • credentials: 一个指定要用于工作程序的凭据类型的  DOMString。 可设定的值为 omitsame-origin 或 include. 若不指定,或者 type 设定为 classic, 默认值为 omit (无需凭据)。
  • name: 一个指定表示 worker 范围的SharedWorkerGlobalScope的标识名称的 DOMString,主要用于调试。

Return value

创建的 worker

Exceptions

  • SecurityError 当文档不能正常启动 workers 时抛出
  • NetworkError 如果其中一个脚本的MIME类型是text / csv,image / *,video / *或audio / * 时抛出。类型只应该为 text/javascript
  • SyntaxError 当 URL 不能被解析时抛出

示例

以下代码段显示了使用 SharedWorker() 构造函数创建 SharedWorker 对象以及对象的后续用法:

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');
}

看完整示例,请见 Basic shared worker example (run shared worker.)

规范

Specification Status Comment
HTML Living Standard
SharedWorker()
Living Standard  

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 4Edge ? Firefox Full support 29IE Full support 10Opera Full support 10.6Safari No support 5 — 6.1WebView Android Full support YesChrome Android Full support YesEdge Mobile ? Firefox Android Full support 33Opera Android Full support 11.5Safari iOS No support 5.1 — 7.1Samsung Internet Android Full support Yes
name optionChrome Full support YesEdge ? Firefox Full support 55IE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesEdge Mobile ? Firefox Android Full support 55Opera Android ? Safari iOS ? Samsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

See also

文档标签和贡献者

此页面的贡献者: Katherina-Miao
最后编辑者: Katherina-Miao,