РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗tlVtImWk 42 of 72 menu
◀ ▶

Воркер в Vite

Воркер собирается отдельным файлом и запускается со страницы.

Тяжёлую или долгую работу удобно вынести в отдельный поток. Скрипт воркера лежит рядом с модулями и слушает сообщения:

self.onmessage = (event) => { self.postMessage(event.data); };

В разметке нужен элемент для результата:

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> <p id="out">wait</p> <script type="module" src="/src/main.js"></script> </body> </html>

На странице импортируем конструктор с суффиксом ?worker, создадим экземпляр и покажем ответ в абзаце:

import HelloWorker from './workers/hello.worker.js?worker'; const worker = new HelloWorker(); const out = document.querySelector('#out'); worker.onmessage = (event) => { out.textContent = event.data; }; worker.postMessage('hello');

На сервере разработки Vite отдаёт воркер отдельным модулем. Откроем http://localhost:5173 и увидим слово hello после ответа потока. После сборки файл воркера лежит в папке результата отдельно от главного скрипта.

Создайте src/jobs/ready.worker.js, который возвращает строку ready на любое сообщение, и выведите ответ на странице через импорт с суффиксом ?worker.

Измените воркер так, чтобы он добавлял к полученному тексту восклицательный знак, и проверьте результат на экране, отправив слово ready из главного модуля.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить