BonBonSlick
@BonBonSlick
Vanilla Full Stack Web Architector

Проверять открыт ли сайт в более чем одной вкладке?

Как лучше это реализовать?
На стороне клиента или сервера?
Почему?
  • Вопрос задан
  • 201 просмотр
Решения вопроса 4
l3ftoverz
@l3ftoverz Куратор тега PHP
Rings of Saturn - The Husk
На стороне клиента или сервера?
Подумай, есть у тебя в данном пункте выбор.

Как лучше это реализовать?
Нормально - никак, только костылями по типу: слушать onload -> unload
Ответ написан
Stalker_RED
@Stalker_RED
Вариант на клиенте: страница на старте генерирует уникальный метку (таймстамп + случайное число, например), запоминает в переменную и записывает в локалстораж.
Периодически проверяет что там, и если после ее метки появились метки от других страниц - значит страниц уже несколько.
Ответ написан
quadabrashell
@quadabrashell
Мобильный и Веб-разработчик
Возможно, в решении вашей проблемы поможет Page Visibility APIdocument.hidden
Если вкладка видна, то следует выполнять обновление страницы, если не видна то нет смысла в обновлении. Количество вкладок значение не имеет. Это подходит, например, для онлайн редактора, когда нужно регулярно проверять не изменил ли кто нибудь документ который ты сейчас редактируешь, но важно не посылать по 20 запросов с 20 открытых вкладок.

Возможно, вам нужен вебсокет с ограничением в одно соединение на одного клиента, но это сложно реализовать.

Или используйте localStorage для хранения счётчика открытых вкладок если это действительно необходимо.
Ответ написан
И на стороне клиента и на стороне сервера - клиент отправляет серверу запрос раз в 2 минуты, сервер проверяет что запрос отправлялся раз в 2 минуты (плюс минус) - если чаще - значит там 2 вкладки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BojackHorseman
@BojackHorseman Куратор тега PHP
...в творческом отпуске...
зачем эти мучения, если все, что вы придумаете, легко обходится открытием двух браузеров?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы