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
。 可设定的值为omit、
same-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 |
浏览器兼容性
BCD tables only load in the browser
See also
- The
SharedWorker
interface it belongs to.