Запретить вход на веб-сайт в нескольких браузерах / вкладках одновременно

У меня есть веб-сайт с тяжелым интерфейсом ajax, который ломается (или показывает неверные данные), когда пользователи открывают его в нескольких окнах браузера одновременно. Поэтому я хотел бы принудительно разрешить пользователю входить на веб-сайт только на одной вкладке за раз, независимо от того, находится ли он на одном компьютере или даже на нескольких компьютерах.

Я ищу идеи, как это сделать.

Есть ли какой-либо метод JavaScript, чтобы определить, открыта ли определенная страница на другой вкладке?

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

Например, клиент мог бы отправлять сообщения серверу каждые скажем, 1 минуту. Если сервер получает сообщения от определенных пользователей с частотой, превышающей одно сообщение в минуту, он знает, что он открыт более чем в одном окне или вкладке. Затем он может сообщить одному из клиентов, что ему нужно сообщить пользователю об ошибке.

Идея отправки сообщений серверу каждую минуту меня не устраивает.

Есть ли другие идеи?

EDIT: некоторые люди задаются вопросом, почему у меня вообще эта проблема. Вот оно: Если сервер получает сообщения от определенных пользователей с частотой, превышающей одно сообщение в минуту, он знает, что он открыт более чем в одном окне или вкладке. Затем он может сообщить одному из клиентов, что ему нужно сообщить пользователю об ошибке.

Идея отправки сообщений серверу каждую минуту меня не устраивает.

Есть ли другие идеи?

EDIT: некоторые люди задаются вопросом, почему у меня вообще эта проблема. Вот оно: Если сервер получает сообщения от определенных пользователей с частотой, превышающей одно сообщение в минуту, он знает, что он открыт более чем в одном окне или вкладке. Затем он может сообщить одному из клиентов, что ему нужно сообщить пользователю об ошибке.

Идея отправки сообщений серверу каждую минуту меня не устраивает.

Есть ли другие идеи?

EDIT: некоторые люди задаются вопросом, почему у меня вообще эта проблема. Вот оно: некоторые люди задаются вопросом, почему у меня вообще эта проблема. Вот оно: некоторые люди задаются вопросом, почему у меня вообще эта проблема. Вот оно: Это приложение для отслеживания времени, полностью построенное на ajax. Вы можете просматривать / создавать / удалять / изменять таймеры, проекты и клиентов с помощью ajax, не покидая страницы. Если веб-сайт открыт на нескольких вкладках, все очень быстро станет несовместимым. Ошибки обычно даже случаются. Например, пользователь создает проект, а затем запускает таймер в tab1, tab2 не будет отображать эти изменения. А поскольку все это ajax, он не будет просто синхронизироваться, когда пользователь нажимает какую-либо кнопку на второй вкладке.

5
задан Jonah 20 February 2011 в 07:46
поделиться