Конструктор
new Worker(string scriptURL)
Создает новый объект Worker и запускает JavaScript-сценарий, находящийся по адресу scriptURL.
Методы
void postMessage(any message, [MessagePort[] ports])
Отправляет сообщение message фоновому потоку выполнения, котоpый получит его в виде объекта MessageEvent, в обработчике onmessage. Аргумент message может быть простым значением, объектом или массивом, но не функцией. Допускается передавать такие объекты клиентского JavaScript, как ArrayBuffer, File, Blob и ImageData, но узлы, такие как Document и Element, передавать нельзя (подробности приводятся во врезке «Структурированные копии» в главе 22).
Необязательный аргумент ports позволяет указать один или более прямых каналов связи с объектом Worker. Например, если имеются два объекта Worker, можно обеспечить прямое взаимодействие между ними, передав их конструкторам концы соединения MessageChannel.
void terminate()
Останавливает фоновый поток выполнения и прерывает работу сценария в нем.
Обработчики событий
Поскольку фоновые потоки выполняются в окружении, отличном от окружения, создавшего их, они могут взаимодействовать с родительским потоком только посредством событий. Обработчики этих событий можно зарегистрировать с помощью свойств, перечисленных ниже, или с помощью методов интерфейса EventTarget.
onerror
Когда в сценарии, выполняемом в фоновом потоке, возбуждается исключение и это исключение не обрабатывается обработчиком onerror объекта WorkerGlobalScope, генерируется событие «error» в объекте Worker. Обработчику этого события передается объект ErrorEvent. Событие «error» не всплывает. Если данный фоновый поток выполнения запущен другим фоновым потоком, отмена события «error» предотвратит его передачу родительскому фоновому потоку. Если объект Worker создан в главном потоке выполнения, отмена события может предотвратить вывод сообщения в консоли JavaScript.
onmessage
Когда сценарий, выполняемый в фоновом потоке, вызовет свою глобальную функцию postMessage() (см. WorkerGlobalScope), в объекте Worker будет сгенерировано событие «message». Обработчику события будет передан объект MessageEvent, свойство data которого будет содержать копию значения, переданного сценарием из фонового потока выполнения методуpostMessage().
WorkerGlobalScope
(EventTarget, Global)
Фоновый поток, представляющий объект Worker, работает в среде выполнения, совершенно отличной от родительского потока, породившего его. Объект WorkerGlobalScope является глобальным объектом для фонового потока выполнения, поэтому получается, что данная справочная статья описывает среду выполнения «внутри» объекта Worker. Поскольку объект WorkerGlobalScope играет роль глобального объекта, он наследует свойства и методы глобального объекта базового языка JavaScript.
Свойства
В дополнение к свойствам, перечисленным ниже, объект WorkerGlobalScope определяет все глобальные свойства базового JavaScript, такие как Math и JS0N.
readonly WorkerLocation location
Это свойство, подобно свойству window, location, является объектом Location: оно позволяет фоновому потоку проверить URL-адрес, откуда был загружен выполняемый в нем сценарий, и включает в себя свойства, возвращающие отдельные части URL.
readonly WorkerNavigator navigator
Это свойство, подобно свойству window, navigator, является объектом Navigator: оно определяет свойства, позволяющие фоновому потоку определить тип броузера, в котором он выполняется, и состояние подключения к сети.
readonly WorkerGlobalScope self
Это свойство ссылается на сам глобальный объект WorkerGlobalScope. Оно похоже на свойство window объекта Window в главном потоке выполнения.