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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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