Код: Выделить всё
//lives in shared-worker.js
var connections=[];//this represents the list of all windows/tabs
onconnect=function(e){
connections.push(e.ports[0]);
};
Когда пользователь закрывает окно, срок действия его соединения с общим рабочим процессом истекает, и его следует удалить из переменной Connections. Но я не нашел надежного способа сделать это.
Глядя на спецификацию, объекты переменной Connections не содержат свойства/функции, позволяющей проверить, живо ли соединение.
Возможно ли это?
Опять же, общая цель — получить список всех окон/вкладок.
РЕДАКТИРОВАТЬ: Можно было бы сделать так, чтобы общий работник отправлял сообщения в окна и ожидал ответа. Если общий работник не получает ответа, он будет считать, что окно закрыто. В моих экспериментах этот подход не оказался надежным; проблема в том, что невозможно определить, закрыто ли окно или просто требуется много времени для ответа.
Подробнее здесь: https://stackoverflow.com/questions/136 ... till-alive
Мобильная версия