Как я могу реализовать «подсессии», то есть хранилище на вкладке - PullRequest
0 голосов
/ 10 июня 2011

Мне нужен способ сделать следующее:

В веб-приложении есть переменная с именем 'setting'.

Когда пользователь впервые подключается к приложению, настройка должна иметьзначение «default».

Настройка может быть изменена на любой странице.

Если пользователь щелкает средним щелчком мыши, чтобы открыть страницу в новой вкладке, настройка этой страницы должна быть копиейнастройки текущей страницы (копия, а не ссылка на нее).

Если пользователь открывает новую вкладку и вводит URL-адрес веб-приложения, тогда значение этой страницы для настройки должно быть «default».

Если пользователь щелкнул левой кнопкой мыши по ссылке, новая страница должна иметь то же значение для настройки, что и ссылающаяся страница (то же значение, а не копия).

Реализация:

Я, очевидно, могу сделать это с помощью мерзкого хака (...? Setting = foo), но это становится неприятным, когда есть много настроек.

Есть ли хранилище для каждой вкладки, доступное в браузерах.

Теория:

Теоретическая основа для этогоhaviour - это концепция субсессии.Все подсессии принадлежат сеансу.Подразделения имеют родителя, если их вкладка была открыта средним щелчком мыши.Если их страница загружается путем ввода URL-адреса на пустой вкладке, то у подсессии нет родителя.Настройки могут быть сохранены в подсессиях, и если они не присутствуют в подсессии, вместо них используется значение родителя.

У кого-нибудь есть идеи, как это сделать?

Есть ли сайты, которые уже ведут себя таким образом?

Спасибо,

Крис.

Ответы [ 2 ]

2 голосов
/ 06 июля 2012

Я думаю, что это будет работать для вас: http://www.xul.fr/en/html5/sessionstorage.php

0 голосов
/ 13 июня 2011

Я написал решение этой проблемы по адресу:

https://github.com/chrisdew/subsession

Очевидно, он находится на ранней стадии разработки и может содержать ошибки.

...