Рабочий поток с общим доступом: конструктор SharedWorker()
Конструктор SharedWorker() создаёт объект SharedWorker, который выполняет скрипт по указанному URL. Этот скрипт должен подчиняться политике одинакового происхождения.
Примечание: Существуют разногласия между производителями браузеров относительно того, является ли URL-адрес данных тем же самым происхождением или нет. Хотя Firefox 10.0 и более поздние версии принимают URL-адреса данных, это не относится ко всем другим браузерам.
Синтаксис
new SharedWorker(aURL) new SharedWorker(aURL, name) new SharedWorker(aURL, options)
Параметры
aURL-
Строка, представляющая URL скрипта, который будет выполнять рабочий поток. Он должен подчиняться политике одинакового происхождения.
nameНеобязательно-
Строка, задающая идентифицирующее имя для
SharedWorkerGlobalScope, представляющего область действия рабочего потока, что полезно для создания новых экземпляров одного и того же SharedWorker и отладки. optionsНеобязательно-
Объект, содержащий свойства параметров, которые могут быть установлены при создании экземпляра объекта. Доступные свойства следующие:
type-
Строка, определяющая тип создаваемого рабочего потока. Значение может быть
classicилиmodule. Если не указано, по умолчанию используетсяclassic. credentials-
Строка, определяющая тип используемых учетных данных для рабочего потока. Значение может быть
omit,same-origin, илиinclude. Если не указано или если типclassic, по умолчанию используетсяomit(нет необходимости в учетных данных). name-
Строка, задающая идентифицирующее имя для
SharedWorkerGlobalScope, представляющего область действия рабочего потока, что в основном полезно для отладки. -
Строка, указывающая, какие
SameSiteкуки должны быть доступны рабочему потоку. Может принимать одно из следующих двух значений:- 'all'
-
SameSite=Strict,SameSite=Lax, иSameSite=Noneкуки будут доступны рабочему потоку. Этот параметр поддерживается только в контексте первого уровня и является значением по умолчанию в контексте первого уровня. - 'none'
-
Только
SameSite=Noneкуки будут доступны рабочему потоку. Этот параметр поддерживается в контексте первого и третьего уровня, и является значением по умолчанию в контексте третьего уровня.
Исключения
-
SecurityErrorDOMException -
Выбрасывается, если документу запрещено запускать рабочие потоки, например, если URL имеет недопустимый синтаксис или нарушается политика одинакового происхождения, или если значение
sameSiteCookiesне поддерживается в данном контексте. -
NetworkErrorDOMException -
Выбрасывается, если MIME-тип скрипта рабочего потока неверный. Он должен всегда быть
text/javascript(по историческим причинам другие MIME-типы JavaScript могут быть приняты). -
SyntaxErrorDOMException -
Выбрасывается, если
aURLне может быть обработана.
Примеры
Следующий фрагмент кода демонстрирует создание объекта SharedWorker с помощью конструктора SharedWorker() и последующее использование объекта:
const myWorker = new SharedWorker("worker.js");
myWorker.port.start();
[first, second].forEach((input) => {
input.onchange = () => {
myWorker.port.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
});
myWorker.port.onmessage = (e) => {
result1.textContent = e.data;
console.log("Message received from worker");
};
Для получения полного примера см. наш пример простого рабочего потока с общим доступом (запуск рабочего потока с общим доступом.)
Спецификации
| Спецификация |
|---|
| HTML # dom-sharedworker-dev |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
SharedWorker |
5 | 79 | 29 | 10.6 | 165–7 | Нет | 33 | 11–14 | 165–7 | 4.0–5.0 | Нет |
ecmascript_modules |
80 | 80 | 114 | 67 | 15["Поддержка вложенных рабочих потоков была добавлена в Safari 15.5.", "Загрузка скрипта во вложенных рабочих потоках была добавлена в Safari 16.4."] |
Нет | 114 | Нет | 15["Поддержка вложенных рабочих потоков была добавлена в Safari на iOS 15.5.", "Загрузка скрипта во вложенных рабочих потоках была добавлена в Safari на iOS 16.4."] |
Нет | Нет |
mime_checks |
Нет | Нет | 81 | Нет | 16 | Нет | 81 | Нет | 16 | Нет | Нет |
options_name_parameter |
70 | 79 | 55 | 57 | Нет | Нет | 55 | Нет | Нет | Нет | Нет |
options_sameSiteCookies_parameter |
125 | Нет | Нет | 111 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
options_type_parameter |
80 | 80 | 114 | 67 | 15 | Нет | 114 | Нет | 15 | Нет | Нет |
См. также
- Интерфейс
SharedWorker, к которому он относится.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker