Worker
        
        
          
                Baseline
                
                  Widely available
                
                 *
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
* Some parts of this feature may have varying levels of support.
Интерфейс Worker из Web Workers API является представителем фоновой задачи, которая легко может быть создана и может передавать сообщения обратно создателю. Создание worker - это вызов конструктора Worker() и задание скрипта, выполняемого в потоке worker.
Workers могут, в свою очередь, порождать новые workers, если эти workers расположены в одном каталоге с родительской страницей (Примечание: вложенные workers в настоящее время не поддерживаются в Blink). Кроме того, workers могут использовать XMLHttpRequest для network I/O, при условии, что атрибуты responseXML и channel XMLHttpRequest всегда возвращают null.
Не все интерфейсы и функции могут быть использованы в скрипте, ассоциированном с Worker.
В Firefox, если вы хотите использовать workers в расширениях и хотели бы иметь доступ к js-ctypes, вам нужно использовать объект ChromeWorker.
Свойства
Наследует свойства родителя, EventTarget, и поддерживает свойства из AbstractWorker.
Обработчики событий
- AbstractWorker.onerror
- 
EventListenerвызываемый каждый раз, когда из воркера приходитErrorEventс типомerror. Это событие унаследовано отAbstractWorker.
- Worker.onmessage
- 
EventListenerвызываемый каждый раз, когда из воркера приходитMessageEventс типомmessage— то есть когда сообщение было отправлено воркером в родительский документ с помощьюDedicatedWorkerGlobalScope.postMessage. Сообщение передаётся в свойстве объекта событияdata.
Конструкторы
Методы
Наследует методы своего родителя, EventTarget, а также реализует методы AbstractWorker.
- Worker.postMessage()
- 
Отправляет сообщение — которое может являться любымJavaScript объектом — во внутреннюю область видимости воркера.
- Worker.terminate()
- 
Немедленно завершает выполнение воркера. Не даёт воркеру возможности завершить выполняемые операции; просто сразу останавливается. Экземпляры ServiceWorker не поддерживают этот метод. 
Пример
Представленный фрагмент кода показывает создание объекта Worker с помощью конструктора Worker(), а также его использование:
var myWorker = new Worker("worker.js");
first.onchange = function () {
  myWorker.postMessage([first.value, second.value]);
  console.log("Message posted to worker");
};
For a full example, see ourBasic dedicated worker example (run dedicated worker).
Спецификации
| Specification | 
|---|
| HTML> # dedicated-workers-and-the-worker-interface> | 
Совместимость с браузерами
Loading…
Смотрите также
- Using web workers
- Functions available to workers
- Другие типы воркеров: SharedWorkerи ServiceWorker.
- Non-standard, Gecko-specific workers: ChromeWorker, used by extensions.