Задать вопрос
@ImVeryStupid

Как запретить открытие второй вкладки?

То есть нужно надёжно запретить пользователю открывать вторую вкладку страницы, которая уже открыта у него в браузере. В идеале при открытии второй вкладки он должен увидеть уведомление о запрете и её закрытие после нажатия кнопки ОК.
  • Вопрос задан
  • 1579 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@antonwx
Самый надёжный вариант - позволять открывать вторую вкладку, при этом отключать все предыдущие. Например для каждой вкладки генерировать уникальный id (при запросе показа страницы) и позволять серверу работать только с последним окном. Примерно так работает whatsapp web.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
Это может работать, если вы можете идентифицировать пользователя и ваша страница активно общается с сервером по AJAX.
При открытии пользователю назначается токен, который сверяет сервер при каждом запросе.
При открытии второй вкладки будет сгенерирован другой токен, так что запросы с первой станут получать отлуп.

Иначе определить, закрыл ли пользователь предыдущую страницу перед открытием новой, вы на сервере никак не сможете.
Ответ написан
Наверное речь идет о неком серверном приложении с костылями, в котором нужно обеспечить монопольный доступ к данным, что бы при открытии разных окон данные не перезаписывались.
Вы не сможете получить монопольный доступ на 100%, т.к. после получения данных с сервера соединение закрывается. Даже если вы как-то прикрутите токены, AJAX и прочие вещи, будет проблемой узнать закрыл ли пользователь первое окно или нет, и вы получите полную блокировку данных.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы