Литмир - Электронная Библиотека
A
A

<b>onmessage</b>

Когда сценарий, выполняемый в фоновом потоке, вызовет свою глобальную функцию

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

WorkerGlobalScope

(EventTarget, Global)

Фоновый поток, представляющий объект

<b>Worker</b>
, работает в среде выполнения, совершенно отличной от родительского потока, породившего его. Объект
<b>WorkerGlobalScope</b>
является глобальным объектом для фонового потока выполнения, поэтому получается, что данная справочная статья описывает среду выполнения «внутри» объекта
<b>Worker</b>
. Поскольку объект
<b>WorkerGlobalScope</b>
играет роль глобального объекта, он наследует свойства и методы глобального объекта базового языка JavaScript.

Свойства

В дополнение к свойствам, перечисленным ниже, объект

<b>WorkerGlobalScope</b>
определяет все глобальные свойства базового JavaScript, такие как
<b>Math и JS0N</b>
.

<b>readonly WorkerLocation location</b>

Это свойство, подобно свойству

<b>window, location</b>
, является объектом
<b>Location</b>
: оно позволяет фоновому потоку проверить URL-адрес, откуда был загружен выполняемый в нем сценарий, и включает в себя свойства, возвращающие отдельные части URL.

<b>readonly WorkerNavigator navigator</b>

Это свойство, подобно свойству

<b>window</b>
,
<b>navigator</b>
, является объектом
<b>Navigator</b>
: оно определяет свойства, позволяющие фоновому потоку определить тип броузера, в котором он выполняется, и состояние подключения к сети.

<b>readonly WorkerGlobalScope self</b>

Это свойство ссылается на сам глобальный объект

<b>WorkerGlobalScope</b>
. Оно похоже на свойство window объекта
<b>Window</b>
в главном потоке выполнения.

Методы

В дополнение к методам, перечисленным ниже, объект

<b>WorkerGlobalScope</b>
определяет все глобальные функции базового JavaScript, такие как
<b>isNaN() и eval()</b>
.

<b>void clearInterval(long handle)</b>

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

<b>Window</b>
.

<b>void clearTimeout(long handle)</b>

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

<b>Window</b>
.

<b>void close()</b>

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

<b>void importScripts(string urls...)</b>

Для каждого из аргументов urls этот метод разрешает URL-адрес относительно свойства

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

<b>void postMessage(any message, [MessagePort[] ports])</b>

Отправляет сообщение message (и массив портов, если указан) потоку выполнения, породившему данный фоновый поток. Вызов этого метода генерирует событие «message» в объекте

<b>Worker</b>
в родительском потоке выполнения, обработчику которого передается объект
<b>MessageEvent</b>
со свойством
<b>data</b>
, содержащим копию аргумента message. Обратите внимание, что в фоновом потоке выполнения метод
<b>postMessage()</b>
является глобальной функцией.

<b>long setlnterval(any handler, [any timeout], any args...)</b>

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

<b>Window</b>
.

<b>long setTimeout(any handler, [any timeout], any args...)</b>

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

<b>Window</b>
.

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

Объект

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

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

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

<b>EventTarget</b>
, реализованными в объекте
<b>WorkerGlobalScope</b>
.

<b>onerror</b>

Это необычный обработчик события: это свойство больше похоже на свойство

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

531
{"b":"942716","o":1}