Книга: JavaScript. Подробное руководство, 6-е издание

WorkerGlobalScope

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 в главном потоке выполнения.

Методы

В дополнение к методам, перечисленным ниже, объект WorkerGlobalScope определяет все глобальные функции базового JavaScript, такие как isNaN() и eval().

void clearInterval(long handle)

В точности соответствует одноименному методу объекта Window.

void clearTimeout(long handle)

В точности соответствует одноименному методу объекта Window.

void close()

Переводит поток выполнения в особое состояние «завершения». Оказавшись в этом состоянии он больше не будет возбуждать события. Сценарий продолжит работу до момента возврата в цикл событий фонового потока выполнения, где тут же будет остановлен.

void importScripts(string urls...)

Для каждого из аргументов urls этот метод разрешает URL-адрес относительно свойства location, затем загружает содержимое URL-адреса и выполняет его, как программный код на языке JavaScript. Обратите внимание, что это синхронный метод. Он загружает и выполняет файлы по очереди и не возвращает управление, пока не выполнит все сценарии. (Однако, если какой-то сценарий возбудит исключение, это исключение начнет распространение и помешает загрузке и выполнению следующих за ним сценариев.)

void postMessage(any message, [MessagePort[] ports])

Отправляет сообщение message (и массив портов, если указан) потоку выполнения, породившему данный фоновый поток. Вызов этого метода генерирует событие «message» в объекте Worker в родительском потоке выполнения, обработчику которого передается объект MessageEvent со свойством data, содержащим копию аргумента message. Обратите внимание, что в фоновом потоке выполнения метод postMessage() является глобальной функцией.

long setlnterval(any handler, [any timeout], any args...)

В точности соответствует одноименному методу объекта Window.

long setTimeout(any handler, [any timeout], any args...)

В точности соответствует одноименному методу объекта Window.

Конструкторы

Объект WorkerGlobalScope содержит все конструкторы базового JavaScript, такие как Агray(), Date() и RegExp(). Он также определяет некоторые наиболее важные конструкторы клиентского JavaScript, позволяющие создавать объекты XMLHttpRequest, FileReaderSync и даже сам объект Worker.

Обработчики событий

Обработчики событий для фонового потока выполнения можно зарегистрировать, установив следующие глобальные свойства или воспользовавшись методами интерфейса EventTarget, реализованными в объекте WorkerGlobalScope.

onerror

Это необычный обработчик события: это свойство больше похоже на свойство onerror объекта Window, чем на свойство onerror объекта Worker. Когда в фоновом потоке выполнения появляется необработанное исключение, будет вызвана эта функция, если она определена, с тремя строковыми аргументами, определяющими сообщение об ошибке, URL-адрес сценария и номер строки в сценарии. Если функция вернет false, исключение будет считаться обработанным и прекратит дальнейшее распространение. В противном случае, если это свойство не установлено или обработчик не вернул false, исключение продолжит распространение и вызовет событие «error» в объекте Worker в родительском потоке выполнение.

onmessage

Когда родительский поток выполнения вызывает метод post Message() объекта Worker, представляющего данный фоновый поток выполнения, в данном объекте WorkerGlobalScope генерируется событие «message». Обработчику этого события будет передан объект MessageEvent, свойство data которого хранит копию аргумента message, переданного родительским потоком выполнения.

Оглавление книги


Генерация: 4.016. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз