Хранимая область данных.
Здравствуйте, возникла проблема.
Есть javascript, который работает с определенным набором данных, после того как он отработает данные записываются в сессию, данный скрипт запускается несколько раз, после каждого запуска данные из сессии считываются и обрабатываются по новой. Этот случай работает только для одного экземпляра данных. Необходимо, чтобы экземпляров было несколько, соответственно сессия уже для этого не подходит, как это организовать? Пришла мысль создать массив, каждый эл. которого был бы экземпляром данных, но при перезапуске скрипта, все естественно затирается, т.к. массив определен внутри самого скрипта... замкнутый круг :confused: |
|
Не совсем то...
Какие еще могут быть варианты? |
Цитата:
|
Цитата:
Цитата:
|
Может вариантом будет использовать cookie? Сформировать, задать им время хранения и пусть себе лежат.
|
session.sorder = sorder;
sorder - набор данных. Хотелось бы еще какие-нить варианты рассмотреть ) Есть подозрение, что не получится с вышеназванным вариантом. |
Вы про серверный JavaScript и Session Management Service чтоли?
|
Я в этом не очень силен, т.к. раньше не приходилось работать, видимо о нем )
|
а, ну если серверный, то storage.js не подойдет
а сессии как раз для того и предназначены, чтобы хранить информацию между запросами, чем они вас не устраивают? |
Мы от вас пытаемся добиться внятного ответа, что за сессии в JavaScript вы имеете ввиду? Где исполняется JavaScript, в браузере или же это серверная реализация JavaScript?
|
Есть, допустим два контракта. Если запустить один из них, в сессии будут данные этого контракта, при запуске второго данные затираются и записываются новые. Как сделать, чтобы, например, в сессии храенить несколько экземпляров данных и получать к ним доступ по какому-то ключу.
|
значением элемента в сессии может быть массив? если нельзя, то можно сериализовать массив, а при получении его надо будет десериализовать. В крайнем случае можно эмулировать массив, использовать ключи типа: contract_1, contract_2
|
В сессию записываются и массивы и простые типы данных.
session.sorder = sorder; (выборка данных из БД) session.sid = sid; (ID контракта) Соответственно есть шаги по работе с контрактом, при переходе на новый шаг, скрипт перезапускается и выполняется новая функция, но использующая данные с прошлого шага. Я совершенно не представляю как с помощью сессии организовать массив данных, элементами которого будут являться экземпляры данных по контрактам. Вернее представляю, но внутри самого скрипта, соответственно после каждого запуска это все будет инициироваться по новой и данные потеряются. Если можно, вставь плиз код с примером, как это реализуется. |
ну если у тебя javascript и в сессии могут храниться массивы, то для начала стоит инициализировать массив
if (! session.sorder) session.sorder = []; добавление в массив session.sorder.push( obj ); может быть понадобится временная переменная var sorder = session.sorder sorder.push( obj ); session.sorder = sorder но это я уже не знаю, т.к. с сессиями в js не работал |
PolarWolf,
Что за библиотеку вы используете? В каком контексте работает JavaScript - в браузере или в .NET может быть? Что за сессии, про которые вы говорите, в нативном JavaScript реализации сессий не существует. |
о, PolarWolf, попробуйте вставить alert(1); куда-нибудь, если неуверены где исполняется javascript: на клиенте или на сервере)) должно появится диалоговое окно с единицей, если клиентский. Но больше похоже на серверный
|
Цитата:
|
Часовой пояс GMT +3, время: 07:44. |