Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Сессионные сookies, sessionStorage, IE8 или «Как запустить одновременно две сессии онлайнового почтового клиента?»

Напечатать страницу
18.05.2009 13:17 | Galaxer

В Internet Explorer 8 управление сессиями браузера реализовано много проще, нежели в предшественнике. Например, вы собираетесь работать с двумя окнами Hotmail, в каждом из которых вы управляете различными учётными записями. Выбрав опцию "Новый сеанс" из меню "Файл", вы откроете новое окно браузера. Это окно не будет пользоваться тем же списком файлов cookies, что и прежнее, поэтому вы можете войти в Hotmail (как и в большинство прочих веб-приложений) под другой учётной записью. Приверженцам командной строки предлагается запустить iexplore.exe с параметром -nomerge.

Напротив, если вы просто запустите "Новое окно", "Создать вкладку" или "Создать копию вкладки" из того же меню "Файл", или с помощью ярлыка на рабочем столе, новая вкладка или окно обратится к тем же файлам cookies, что и родительское. Эта процедура называется "слиянием сессий".


Почему браузеры задействуют слияние сессий?
Корректное управление слиянием сессий очень важно, поскольку многие веб-приложения созданы таким образом, что предполагают его наличие. Например, когда веб-приложение открывает всплывающее окно, оно обычно исходит из того, что это окно будет использовать те же файлы cookies, что и основное окно, так что пользователь останется внутри уже запущенной сессии со всеми своими настройками и т.п. Точно так же, когда пользователь инициирует команду "Создать копию вкладки", веб-приложение закономерно ожидает, что копия покажет то же самое содержимое, что и оригинал. Для того, чтобы такой сценарий заработал, необходимо использование одних и тех же файлов cookies.

С другой стороны, авторы протокола HTML5 подчёркивают, что совместное использование файлов cookies разными окнами и вкладками может привести к некоторым проблемам.

Предположим, пользователь покупает разные авиабилеты в двух разных окнах, используя один и тот же сайт. Если сайт использует файлы cookies для того, чтобы отслеживать какой именно билет приобретается, а пользователь в это время переходит по различным ссылкам то в одном окне, то в другом, приобретаемый в данный момент билет может "утечь" из одного окна в другое, что, в свою очередь, приведёт к покупке двух одинаковых билетов, а пользователь этого даже не заметит.

Поэтому в HTML5 функция sessionStorage разработана таким образом, что вкладки в рамках одной сессии всё равно используют разные, независимые контейнеры. Если изменить атрибуты sessionStorage в одной вкладке, это не отразится на другой вкладке, даже в рамках единой сессии. Напротив, атрибут localStorage ведёт себя практически так же, как и сохраняемые на диске постоянные файлы Cookies, — изменения атрибутов localStorage отражаются во всех вкладках браузера во время активной (и будущих) сессий.

Я подготовил специальную тестовую страницу, на которой можно опробовать слияние сессий и запуск новой сессии для IE8: http://www.enhanceie.com/test/sessions/

Эрик Лоуренс (Eric Lawrence)


Источник: http://blogs.msdn.com/ieru
Перевод: Galaxer

Комментарии

Не в сети

Ясно. Но почему после закрытия вкладок, копии процесса iexplore.exe, созданные этими вкладками, все еще продолжают работать? Вот даже проверьте: откройте в ИЕ8 много вкладок, затем закройте их все, кроме одной. Смотрите диспетчер задач. Сколько было открыто вкладок, столько копий процесса ИЕ8 и висит. Стоит только закрыть последнюю вкладку (тобишь уже сам ИЕ8, родительский процесс), как убиваются и все эти процессы. Это нормально? Проверьте кто-нибудь...

18.05.09 15:19
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.145 секунд (Общее время SQL: 0.128 секунд - SQL запросов: 53 - Среднее время SQL: 0.00242 секунд))
Top.Mail.Ru