SharedWorker()
SharedWorker()
构造函数实例化的 SharedWorker
对象可以执行指定的 URL 的脚本。所执行的脚本必须遵守 同源策略。
如果 URL 的语法无效或者违反了同源策略会抛出 SECURITY_ERR
类型的 DOMException
异常。
备注:浏览器开发者对于 data URI 是否同源产生分歧。尽管 Gecko 10.0 及之后版本支持 data URIs,其他浏览器并不能支持。
语法
js
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
对象以及对象的后续用法:
js
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");
};
有关更完整的示例,详见基本的共享型 worker 示例(运行基本的共享型 worker)。
规范
Specification |
---|
HTML Standard # dom-sharedworker-dev |
浏览器兼容性
BCD tables only load in the browser
See also
- The
SharedWorker
interface it belongs to.