Выбрать главу

Свойства

В дополнение к свойствам, перечисленным ниже, объект 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 в родительском потоке выполнение.