2012-06-13 5 views
0

Я разрабатываю веб-приложение с использованием webspeed. Мой код написан только в cgi-wrappers. В настоящее время я работаю над управлением wesession (все его случаи). Теперь проблема в том, что когда я обновляю свою страницу с помощью клавиши F5, мой .p всегда создает новый идентификатор сеанса. Как я могу решить такую ​​ситуацию в .p? Эта проблема не возникает, когда код написан в .html-файлах, но когда код полностью написан в .p-файлахКак управлять веб-сайтом в файлах cgi-wrapper?

Спасибо.

ответ

0

Большинство людей в мире OpenEdge пишут собственную обработку сеанса (включая меня), хотя есть несколько альтернатив.

Как упоминает Тим, существует свободная структура, которая существует уже 12 лет, но я не знаю, активно ли она развивается.

Основа eScript - отличная замена для WebSpeed, позволяющая разделить бизнес-логику & Пользовательский интерфейс. Вы будете знать, что использование cgi-wrappers - это боль для вашей обработки строк (кавычки и двойные кавычки для кода JavaScript внутри строк 4GL - это кошмар). Полная структура (я считаю, что существует постоянная лицензия на использование полной структуры) имеет встроенную обработку сеанса.

Я считаю, что в ближайшие 12 месяцев разработчик eScript будет выпущен совершенно новый фреймворк, заменитель для eScript; для получения дополнительной информации зарегистрируйтесь в списке рассылки разработчика eScript по адресу Rule Six (его имя Мэтт Верриндер, и я никоим образом не связан с ним).

Я сам использую основной веб-объект eScript. У этого нет постоянного лицензирования (вам просто нужно взять с собой заранее подготовленную консультацию у Мэтта) и дает вам преимущества бизнес-логики/пользовательского интерфейса, которые делятся на дешевые. Разумеется, вам все равно придется писать свою сессию.

Хорошим ресурсом для разработчиков OpenEdge является www.progrestalk.com: у вас больше шансов получить полезные ответы там, чем на Stackoverflow. Если вы выполните поиск на своих форумах, вы найдете много информации о сеансовой обработке.

OpenEdge имеет обработку сессий, построенный в Вот отрывок из thread на Progresstalk:.

На посланному вам нужно установить в $ DLC/свойства/ubroker.porperties: useConnID = 1 в среде разделе веб-справочника вам необходимо установить SESSION_PATH. Этот должен указывать на каталог, в котором вы хотели бы сохранить сеансы переменных. Если вы это сделали, вы можете использовать setSession («VarName», «VarValue») для установки переменных и getSession («Varname») для извлечения значений. Переменные сеанса: , хранящиеся в имени файла ENCODE (SESSION: SERVER-CONNECTION-ID) .tmp.

Этот метод имеет свои недостатки, такие как: Значения всегда сохраняются как символ , а максимальный размер файла - 32K (ну, по крайней мере, это было раньше) и так . Но если материал, который вы собираетесь делать, не слишком сложный, то его хорошая отправная точка. Всегда можно развернуть это, начиная с реализовать собственный SessionManager.

Надеюсь, есть полезная информация, которую вы можете использовать!