Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Хранимая область данных. (https://javascript.ru/forum/misc/2551-khranimaya-oblast-dannykh.html)

Octane 14.01.2009 17:02

Мы от вас пытаемся добиться внятного ответа, что за сессии в JavaScript вы имеете ввиду? Где исполняется JavaScript, в браузере или же это серверная реализация JavaScript?

PolarWolf 14.01.2009 17:07

Есть, допустим два контракта. Если запустить один из них, в сессии будут данные этого контракта, при запуске второго данные затираются и записываются новые. Как сделать, чтобы, например, в сессии храенить несколько экземпляров данных и получать к ним доступ по какому-то ключу.

x-yuri 14.01.2009 17:14

значением элемента в сессии может быть массив? если нельзя, то можно сериализовать массив, а при получении его надо будет десериализовать. В крайнем случае можно эмулировать массив, использовать ключи типа: contract_1, contract_2

PolarWolf 14.01.2009 17:39

В сессию записываются и массивы и простые типы данных.
session.sorder = sorder; (выборка данных из БД)
session.sid = sid; (ID контракта)
Соответственно есть шаги по работе с контрактом, при переходе на новый шаг, скрипт перезапускается и выполняется новая функция, но использующая данные с прошлого шага.
Я совершенно не представляю как с помощью сессии организовать массив данных, элементами которого будут являться экземпляры данных по контрактам. Вернее представляю, но внутри самого скрипта, соответственно после каждого запуска это все будет инициироваться по новой и данные потеряются.

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

x-yuri 14.01.2009 17:44

ну если у тебя javascript и в сессии могут храниться массивы, то для начала стоит инициализировать массив
if (! session.sorder)
    session.sorder = [];

добавление в массив
session.sorder.push( obj );

может быть понадобится временная переменная
var sorder = session.sorder
sorder.push( obj );
session.sorder = sorder

но это я уже не знаю, т.к. с сессиями в js не работал

Андрей Параничев 14.01.2009 17:55

PolarWolf,
Что за библиотеку вы используете? В каком контексте работает JavaScript - в браузере или в .NET может быть? Что за сессии, про которые вы говорите, в нативном JavaScript реализации сессий не существует.

x-yuri 14.01.2009 17:59

о, PolarWolf, попробуйте вставить alert(1); куда-нибудь, если неуверены где исполняется javascript: на клиенте или на сервере)) должно появится диалоговое окно с единицей, если клиентский. Но больше похоже на серверный

Kolyaj 14.01.2009 18:25

Цитата:

Сообщение от x-yuri
а, ну если серверный, то storage.js не подойдет

storage.js я бы вообще не посоветовал использовать в том виде, в котором он там представлен. Запаритесь дебажить.


Часовой пояс GMT +3, время: 01:41.