Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как работает Web Workers? В чем их преимущества и ограничения?
Web Workers — это скрипты, которые выполняются в фоновом режиме, отделенные от основного потока выполнения. Это позволяет выполнять тяжелые вычисления без блокировки пользовательского интерфейса, что улучшает отзывчивость приложений. Однако Web Workers имеют ограничения, такие как отсутствие доступа к DOM и использование только безопасного контекста.
Как можно синхронизировать работу между главным потоком и воркерами?
Синхронизация между главным потоком и Web Workers осуществляется через механизм сообщений, используя методы postMessage и обработчики onmessage. Главный поток отправляет сообщения в worker, а worker может отвечать тем же способом. Однако синхронизация не является мгновенной, поэтому важно учитывать, что сообщения передаются асинхронно.
Как использовать Service Workers для реализации офлайн-приложений и кэширования ресурсов?
Service Workers — это скрипты, работающие в фоновом режиме и позволяющие веб-приложениям работать в офлайн-режиме, а также кэшировать ресурсы для ускорения загрузки. Для их использования необходимо зарегистрировать Service Worker в основном скрипте приложения, а затем использовать API кэширования для сохранения ресурсов. Это позволяет пользователям продолжать использовать приложение, даже когда интернет-соединение отсутствует.
Можно ли из Web Worker'а напрямую отрендерить React-компонент (или компонент другого фреймворка) в DOM?
Нет, Web Worker не может напрямую изменять DOM или рендерить компоненты. Он работает в изолированном потоке без доступа к document или window. Однако можно:
comlink, чтобы упростить обмен данными.Для чего нужен Service Worker?
Service Worker — это скрипт, работающий в фоне, отдельно от веб-страницы. Он позволяет:
Кешировать ресурсы для оффлайн-работы.
Перехватывать сетевые запросы (например, для PWA).
Отправлять push-уведомления.
Чем отличается Web Worker от основного потока?
Какой механизм взаимодействия основного потока с Web Worker?
Как реализовать worker pool в Go?
Что такое worker pool и в чём его отличие от семафора?
Что такое worker pool и зачем он нужен?
Рейтинг:
3
Сложность:
8
Основной поток (UI thread) отвечает за выполнение JavaScript, отрисовку страницы и обработку событий. Web Worker — это фоновый поток, который может выполнять сложные вычисления, но не имеет доступа к DOM и некоторым API браузера.
Рейтинг:
3
Сложность:
7
Основной поток и Web Worker общаются через асинхронные сообщения с помощью postMessage и события onmessage. Данные передаются копированием (не общей памятью), если не используется SharedArrayBuffer.
Рейтинг:
5
Сложность:
6
Worker pool — это фиксированное количество горутин, которые получают задачи из общего канала и обрабатывают их параллельно. Это ограничивает нагрузку и делает выполнение контролируемым.
Рейтинг:
4
Сложность:
6
Семафор ограничивает количество параллельных задач, но порядок выполнения не контролируется. Worker pool — фиксированное число рабочих, обрабатывающих задачи из очереди, что упрощает контроль очередности и управления задачами.
Рейтинг:
5
Сложность:
6
Worker pool — это шаблон, позволяющий ограничить количество одновременно выполняемых задач. Вместо запуска новой горутины для каждой задачи, задачи передаются в фиксированное количество воркеров.
Рейтинг:
4
Сложность:
7
Рейтинг:
4
Сложность:
7
Рейтинг:
4
Сложность:
7
Рейтинг:
3
Сложность:
9
Рейтинг:
5
Сложность:
8