Подтвердить что ты не робот

Что происходит с потоком веб-рабочего HTML5, когда вкладка закрыта во время ее работы?

Мне интересно, что произойдет, когда пользователь закроет вкладку, которая породила рабочий поток, пока поток все еще работает. Он все останавливает? Если да, существует ли способ запустить поток в фоновом режиме, даже когда вкладка закрыта?

4b9b3361

Ответ 1

Да, он останавливает все, работник не может пережить своего владельца. Если вы используете общий рабочий, у которого может быть несколько владельцев, рабочий останется только в живых, если жив хотя бы один владелец. Это так, даже если вы передадите запутанное MessagePort в другое окно (т.е. Владелец порта сообщения не является владельцем рабочего).

Итак, с общими рабочими вы можете "передать" собственность, открыв новое окно, которое устанавливает свое собственное соединение с работником (с new SharedWorker(...)), а затем закроет старое окно. Но одно окно должно всегда оставаться открытым.

Ответ 2

Взгляните сюда

http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workerglobalscope

I think подтверждает, что как только браузер уходит, все работники должны остановиться.

Всякий раз, когда объект документа отбрасывается, его необходимо удалить из список работника Документы каждого работника, чей список содержит Документ.

В случае, когда у вас есть одно окно с использованием веб-работников, и вы закрываете это окно (или вкладку), рабочий уходит.

Если у вас есть случай, когда у вас есть окно, которое открывает другие окна или вкладки, рабочие могут продолжать. Но если вы закрываете все, они все уходят.