Worklet
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Интерфейс Worklet — это облегчённая версия Web Workers, предоставляющая разработчикам доступ к низкоуровневым частям конвейера отрисовки.
С помощью Worklets вы можете запускать JavaScript и WebAssembly код для отрисовки графики или обработки аудио, где требуется высокая производительность.
Worklets позволяют статически импортировать модули ECMAScript, если это поддерживается, используя import. Динамический импорт запрещён спецификацией — вызов import() приведёт к ошибке.
Типы Worklet
Worklets ограничены определёнными сценариями использования; они не могут использоваться для произвольных вычислений, как Web Workers. Интерфейс Worklet абстрагирует свойства и методы, общие для всех типов worklets, и его нельзя создать напрямую. Вместо этого вы можете использовать один из следующих классов:
| Название | Описание | Местоположение | Спецификация |
|---|---|---|---|
AudioWorklet | Для обработки аудио с пользовательскими AudioNode. | Поток отрисовки Web Audio | Web Audio API |
AnimationWorklet | Для создания связанных со скроллингом и других высокопроизводительных процедурных анимаций. | Поток композитора | CSS Animation Worklet API |
LayoutWorklet | Для определения позиционирования и размеров пользовательских элементов. | CSS Layout API | |
SharedStorageWorklet | Для выполнения частных операций с межсайтовыми данными без риска утечки данных. | Основной поток | Shared Storage API |
Примечание: Paint worklets, определённые CSS Painting API, не являются подклассами Worklet. К ним обращаются через обычный объект Worklet, полученный с помощью CSS.paintWorklet.
Для 3D-рендеринга с помощью WebGL вы не используете worklets. Вместо этого вы пишете вершинные шейдеры и фрагментные шейдеры с использованием кода GLSL, и эти шейдеры будут затем выполняться на графическом процессоре.
Свойства экземпляра
Интерфейс Worklet не определяет никаких свойств.
Методы экземпляра
Worklet.addModule()-
Добавляет модуль скрипта по заданному URL в текущий worklet.
Спецификации
| Спецификация |
|---|
| HTML # worklets-worklet |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Worklet |
65 | 79 | 76 | 52 | 14.1 | 65 | 79 | 47 | 14.5 | 9.0 | 65 |
addModule |
65 | 79 | 76 | 52 | 14.1 | 65 | 79 | 47 | 14.5 | 9.0 | 65 |
ecmascript_modules |
80 | 80 | 114 | 67 | 15["Поддержка вложенных работников была добавлена в Safari 15.5.", "Загрузка скриптов во вложенных работниках была добавлена в Safari 16.4."] |
80 | 114 | 57 | 15["Поддержка вложенных работников была добавлена в Safari на iOS 15.5.", "Загрузка скриптов во вложенных работниках была добавлена в Safari на iOS 16.4."] |
13.0 | 80 |
См. также
- Houdini: Разбираясь в CSS на Google Developers (2016)
- AudioWorklet :: Что, почему и как на YouTube (2017)
- Представляем AudioWorklet на Google Developers (2017)
- Animation Worklet - HTTP203 Advent на YouTube (2017)
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Worklet