Как сделать запросы к серверам с отслеживанием состояния даже лучше, ПОСТОЯННО с сохранением состояния? - PullRequest
0 голосов
/ 17 февраля 2012

Поэтому у меня возникают проблемы с сохранением уникальных коллекций на вкладках / в браузере (действительно, вкладки).Использование статических переменных для хранения данных после обратного вызова в ASP не работало так хорошо, потому что все браузеры могли читать из него и изменять переменные.Использование переменных сеанса не работало так хорошо, потому что, хотя оно и делало коллекцию уникальной для разных браузеров, она не была уникальной для разных вкладок.Таким образом, одна вкладка Mozilla может изменить коллекцию в переменной сеанса (изменение коллекции) - пользователь получит неприятный сюрприз при использовании другой вкладки Mozilla при повторном доступе к коллекции - к сожалению, ЖЕ САМАЯ коллекция - что-то вроде грязного чтения.Итак, проблема в том, как сделать коллекции на вкладках / в браузерах с сохранением состояния, но с уникальным состоянием, чтобы каждая из них могла иметь свою собственную уникальную коллекцию и свободно изменять ее.

Проблема, как я вижу здесь, состоит в том, что одна вкладка постоянно делает запрос ajax, который всегда воссоздает объект контроллера, что означает, что он никогда не будет уникальным.

Другая идея состояла в том, чтобы сохранить ссылку на эту коллекцию в javascript, а затем передавать эту ссылку туда и обратно при каждом запросе. Проблема в том, как я могу сделать это без сериализации / десериализации, какой тип побеждает точкупросто сохраняя ссылку: (

Любые идеи приветствуются.

Методы, которые не сработали: Session, Application / Static (не пробовал Application, но, похоже, ведет себя так же). Будет ли работать ViewState? Однако данные не сохраняются: '(

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Замените маршрут по умолчанию на собственный маршрут, который добавляет GUID к URI.И используйте этот GUID для загрузки сеанса.

Я сделал пример в своем блоге только для вас: http://blog.gauffin.org/2012/02/get-a-unique-session-in-each-browser-tab/

1 голос
/ 17 февраля 2012

Вы можете сохранить информацию в window.name, которое должно быть уникальным для каждой вкладки, поскольку каждая вкладка - это отдельное окно.

Демо: http://www.thomasfrank.se/sessionvars.html

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