Книга: 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, переданного родительским потоком выполнения.
- ApplicationCache
- ArrayBuffer
- ArrayBufferView
- Attr
- Audio
- BeforeUnloadEvent
- Blob
- BlobBuilder
- Button
- Canvas
- BlobBuilder
- Button
- Canvas
- CanvasGradient
- CanvasPattern
- CanvasRenderingContext2D
- ClientRect
- CloseEvent
- Comment
- Console
- ConsoleCommandLine
- CSS2Properties
- CSSRule
- CSSStyleDeclaration
- CSSStyleSheet
- DataTransfer
- DataView
- Document
- DocumentFragment
- DocumentType
- DOMException
- DOMImplementation
- DOMSettableTokenList
- DOMTokenList
- Element
- ErrorEvent
- Event
- EventSource
- EventTarget
- FieldSet
- File
- FileError
- FileReader
- FileReaderSync
- Form
- FormControl
- Form Data
- FormValidity
- Geocoordinates
- Geolocation
- GeolocationError
- Geoposition
- HashChangeEvent
- History
- HTMLCollection
- HTMLDocument
- HTMLEIement
- HTMLFormControlsCollection
- HTMLOptionsCollection
- IFrame
- Image
- ImageData
- Input
- jQuery jQuery 1.4
- KeyEvent
- Label
- Link
- Location
- MediaElement
- MediaError
- MessageChannel
- MessageEvent
- MessagePort
- Meter
- MouseEvent
- Navigator
- Node
- NodeList
- Option
- Output
- PageTransitionEvent
- PopStateEvent
- ProcessingInstruction
- Progress
- ProgressEvent
- Screen
- Script
- Select
- Storage
- StorageEvent
- Style
- Table
- TableCell
- TableRow
- TableSection
- Text
- TextArea
- TextMetrics
- TimeRanges
- TypedArray
- URL
- Video
- WebSocket
- Window
- Worker
- WorkerGlobalScope
- WorkerLocation
- WorkerNavigator
- XMLHttpRequest
- XMLHttpRequestUpload