Есть ли способ уничтожить HTML5 WebWorkers в JavaScript?Destroying WebWorkers
Вот моя ситуация. У меня есть веб-приложение, которое генерирует приличное количество WebWorkers (где-то между 16 и 32) для оптимизации некоторых процессов рендеринга. Этот процесс отлично работает в первый раз, но страница умирает, когда скрипт запускается несколько раз (без перезагрузки страницы). Это та же ошибка, которую я получаю, когда пытаюсь создать много (100+) WebWorkers сразу, поэтому я предполагаю, что столкнулся с тем же барьером.
Когда сценарий запускается более одного раза, WebWorkers, которые были созданы в первом раунде, больше не должны существовать; Я не повторно использую объекты WebWorker. Я хотел бы уничтожить WebWorkers, которые были созданы в первый раз, так что будущие исполнения сценария не останавливаются при попытке создать новые WebWorkers.
Я заметил эту проблему только в Chrome и Firefox; У Safari, похоже, нет этого ограничения.
Именно то, что я искал. –
, но он только останавливает работника от выполнения его задачи, экземпляр рабочего все еще находится в памяти. – vsync
@vsync Я также работаю с экземплярами WebWorker. В моем случае мне нужно 4 веб-рабочих для работы в 4 различных областях DOM, которые необходимо обновлять каждую секунду на основе некоторой информации, которую я передаю каждому веб-рабочему, который обрабатывается и отправляется обратно в браузер. В этом случае я должен закончить()/закрыть() каждый WebWorker после каждого вызова, или я могу повторно использовать один и тот же, не беспокоясь о проблемах с производительностью, утечки памяти и т. Д.? –