URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3118
[ Назад ]

Исходное сообщение
"Вопросец"

Отправлено sproot , 26-Фев-05 15:37 
Есть связка Apache 2.0.53 + mod_perl 1.99 и сайт написанный на perl.
На сайте делается submit формы, данные передаются в perl-скрипт,
который формирует данные для отображения на сайте. Как сделать
так чтобы данные отображались в несколько страниц, т.е. проще говоря
была "листалка страниц" данных как на google.ru ya.ru и т.д.
Я пробовал объявлять глобальный массив (в нем все данные) через our в
perl-скрипте, но ничего не получилось - данные при пролистывании исчезают.
Помогите разобраться.

Содержание

Сообщения в этом обсуждении
"Вопросец"
Отправлено PoizOn , 28-Фев-05 09:16 
>Есть связка Apache 2.0.53 + mod_perl 1.99 и сайт написанный на perl.
>
>На сайте делается submit формы, данные передаются в perl-скрипт,
>который формирует данные для отображения на сайте. Как сделать
>так чтобы данные отображались в несколько страниц, т.е. проще говоря
>была "листалка страниц" данных как на google.ru ya.ru и т.д.
>Я пробовал объявлять глобальный массив (в нем все данные) через our в
>
>perl-скрипте, но ничего не получилось - данные при пролистывании исчезают.
>Помогите разобраться.
Выводить порциями данные. Если работаешь с БД, то тут вообще проблем нет. Используй  hidden поля. Вариантов на самом деле много.


"Вопросец"
Отправлено sproot , 28-Фев-05 10:55 
>>Есть связка Apache 2.0.53 + mod_perl 1.99 и сайт написанный на perl.
>>
>>На сайте делается submit формы, данные передаются в perl-скрипт,
>>который формирует данные для отображения на сайте. Как сделать
>>так чтобы данные отображались в несколько страниц, т.е. проще говоря
>>была "листалка страниц" данных как на google.ru ya.ru и т.д.
>>Я пробовал объявлять глобальный массив (в нем все данные) через our в
>>
>>perl-скрипте, но ничего не получилось - данные при пролистывании исчезают.
>>Помогите разобраться.
>Выводить порциями данные. Если работаешь с БД, то тут вообще проблем нет.
>Используй  hidden поля. Вариантов на самом деле много.

В настоящее время так сейчас и работает. Я имел в виду, как сохранять полученные данные после submit формы, а потом пролистывать эти данные порциями (не делая SELECT как в случае с БД ) ? Использование hidden полей равносильно submit т.к. мы выполняем ту же ветвь перл скрипта что и при submit.


"Вопросец"
Отправлено PoizOn , 28-Фев-05 14:26 
>В настоящее время так сейчас и работает. Я имел в виду, как
>сохранять полученные данные после submit формы, а потом пролистывать эти данные
>порциями (не делая SELECT как в случае с БД ) ?
>Использование hidden полей равносильно submit т.к. мы выполняем ту же ветвь
>перл скрипта что и при submit.
Никак. С клиентом можно работать только через куки или хидден поля, если подразумевается, что дополнительных запросов к серверу не будет.


"Вопросец"
Отправлено sproot , 01-Мрт-05 01:06 
>>В настоящее время так сейчас и работает. Я имел в виду, как
>>сохранять полученные данные после submit формы, а потом пролистывать эти данные
>>порциями (не делая SELECT как в случае с БД ) ?
>>Использование hidden полей равносильно submit т.к. мы выполняем ту же ветвь
>>перл скрипта что и при submit.
>Никак. С клиентом можно работать только через куки или хидден поля, если
>подразумевается, что дополнительных запросов к серверу не будет.
Т.е. при каждом пролистывании нужно перелопачивать заново данные для данного клиента ? Не рационально получается.


"Вопросец"
Отправлено XAnder , 01-Мрт-05 09:05 
>Есть связка Apache 2.0.53 + mod_perl 1.99 и сайт написанный на perl.
>На сайте делается submit формы, данные передаются в perl-скрипт,
>который формирует данные для отображения на сайте. Как сделать
>так чтобы данные отображались в несколько страниц, т.е. проще говоря
>была "листалка страниц" данных как на google.ru ya.ru и т.д.
>Я пробовал объявлять глобальный массив (в нем все данные) через our в
>perl-скрипте, но ничего не получилось - данные при пролистывании исчезают.
>Помогите разобраться.

Первое, что приходит в голову, делать LIMIT в запросах к БД, если конечно речь идёт именно о работе с БД. Универсальное же решение - Ваш "глобальный массив" (со всеми данными) записать во временный файл и читать его кусками при следующих вызовах скрипта. Для файла установить TTL и удалять по истечении. На ПХП я бы использовал сессии. В Пёрле я не силён, но наверняка и там что-то подобное есть, а даже если и нет, то легко реализуется самостоятельно.


"Вопросец"
Отправлено PoizOn , 01-Мрт-05 10:49 
>Первое, что приходит в голову, делать LIMIT в запросах к БД, если
>конечно речь идёт именно о работе с БД. Универсальное же решение
>- Ваш "глобальный массив" (со всеми данными) записать во временный файл
>и читать его кусками при следующих вызовах скрипта. Для файла установить
>TTL и удалять по истечении. На ПХП я бы использовал сессии.
>В Пёрле я не силён, но наверняка и там что-то подобное
>есть, а даже если и нет, то легко реализуется самостоятельно.
А еще лучше  записывать во временную таблицу, а после окончания сессии - стирать данные. Для работы с сессиями в Perl есть кучамодулей - один из последних http://search.cpan.org/~sherzodr/CGI-Session-4.00_04/


"Вопросец"
Отправлено sproot , 01-Мрт-05 11:12 
>>Первое, что приходит в голову, делать LIMIT в запросах к БД, если
>>конечно речь идёт именно о работе с БД. Универсальное же решение
>>- Ваш "глобальный массив" (со всеми данными) записать во временный файл
>>и читать его кусками при следующих вызовах скрипта. Для файла установить
>>TTL и удалять по истечении. На ПХП я бы использовал сессии.
>>В Пёрле я не силён, но наверняка и там что-то подобное
>>есть, а даже если и нет, то легко реализуется самостоятельно.
>А еще лучше  записывать во временную таблицу, а после окончания сессии
>- стирать данные. Для работы с сессиями в Perl есть кучамодулей
>- один из последних http://search.cpan.org/~sherzodr/CGI-Session-4.00_04/
Все дело в том, что я не использую БД, а читаю лог-файл. Насчет записи выборки данных во временный файл я уже думал... Просто хотел бы узнать решение когда данные по запросу находятся в памяти на каждого клиента. Для того чтобы узнать в коннекте ли клиент у апача есть параметр Keep-Alive как этим можно воспользоваться ?