С двумя вкладками, открытыми для сайта, вы можете сказать, какая вкладка активна? - PullRequest
1 голос
/ 22 марта 2012

Наш интранет-сайт предъявляет необычные требования.

  • Функционирует как многостраничное настольное приложение.Для одного клиента наши пользователи будут вводить информацию на 30 экранах.
  • Это сайт на основе Asp.Net MVC3 с отключенным состоянием всех сеансов для эффективной работы в веб-ферме.
  • Из соображений конфиденциальности мы не можем использовать строку запроса для отображения информации о клиенте.В настоящее время мы используем файлы cookie для хранения идентификатора клиента.
  • Наша база пользователей хочет, чтобы в одном браузере было открыто несколько вкладок (IE, FF или Chrome).

Если я предполагаю, чтопользователь будет использовать только один, тогда я могу сохранить информацию о клиенте в простом cookie, и все будет работать нормально.

Когда пользователь открывает вторую вкладку, он будет использовать тот же самый cookie.Не желаемое условие.Так можно ли определить разницу между вкладками браузера?

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Вы можете использовать объект sessionStorage для хранения данных, относящихся к одному окну / вкладке.Он работает так же, как и любой другой объект JavaScript, в котором вы можете назначать (sessionStorage.foo = "bar"), извлекать (baz = sessionStorage.foo) и удалять (delete sessionStorage.foo), но в отличие от других объектов JS любой набор свойств будет постоянным при загрузке страниц в одномwindow.

Единственным недостатком является то, что он не отправляет эти данные на сервер.Вы должны сделать это самостоятельно, используя вызов AJAX.

0 голосов
/ 22 марта 2012

Посмотрите в переменную window.name. При загрузке страницы вы можете поместить в нее что-то уникальное, например дату / время, и сохранить то же самое в своем файле cookie (если его нет). Если пользователь откроет новую вкладку (или окно), значение будет пустым, а файл cookie не будет. window.name сохраняется при загрузке страницы (если память служит), поэтому вы сможете однозначно идентифицировать каждую вкладку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...