JavaScript: как узнать, живо ли соединение с общим работником?Html

Программисты Html
Anonymous
JavaScript: как узнать, живо ли соединение с общим работником?

Сообщение Anonymous »

Я пытаюсь использовать общего работника для ведения списка всех окон/вкладок веб-приложения. Поэтому используется следующий код:

Код: Выделить всё

//lives in shared-worker.js
var connections=[];//this represents the list of all windows/tabs
onconnect=function(e){
connections.push(e.ports[0]);
};
Каждый раз, когда создается окно, устанавливается соединение с рабочим элементом Shared-worker.js, и рабочий добавляет соединение с окном в список соединений.

Когда пользователь закрывает окно, срок действия его соединения с общим рабочим процессом истекает, и его следует удалить из переменной Connections. Но я не нашел надежного способа сделать это.

Глядя на спецификацию, объекты переменной Connections не содержат свойства/функции, позволяющей проверить, живо ли соединение.

Возможно ли это?

Опять же, общая цель — получить список всех окон/вкладок.

РЕДАКТИРОВАТЬ: Можно было бы сделать так, чтобы общий работник отправлял сообщения в окна и ожидал ответа. Если общий работник не получает ответа, он будет считать, что окно закрыто. В моих экспериментах этот подход не оказался надежным; проблема в том, что невозможно определить, закрыто ли окно или просто требуется много времени для ответа.

Подробнее здесь: https://stackoverflow.com/questions/136 ... till-alive

Вернуться в «Html»