Встречается на собеседованиях • сегодня
Есть ли возможность запускать в браузере тяжелые операции в background
Да, можно использовать Web Workers для выполнения тяжелых операций в фоне без блокировки основного потока. Они работают в отдельном потоке и общаются с основным через сообщения.
Пример:
javascript
// main.js
const worker = new Worker('worker.js');
worker.postMessage('start'); // Отправка данных воркеру
worker.onmessage = (e) => {
console.log('Результат:', e.data); // Получение результата
};
// worker.js
self.onmessage = (e) => {
if (e.data === 'start') {
// Тяжелая операция (например, обработка большого массива)
const result = heavyCalculation();
self.postMessage(result);
}
};
function heavyCalculation() {
// ... сложные вычисления ...
return 'Готово!';
}
text
Ограничения:
- Нет доступа к DOM
- Ограниченный API (например, нельзя использовать localStorage)
- Для сложных данных лучше использовать Transferable Objects
Для еще более сложных задач можно рассмотреть Service Workers (для фоновых процессов) или WebAssembly (для высокопроизводительных вычислений).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы