Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймер на Perl 
:(
    Опции темы
alt87
Дата 10.8.2009, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.8.2009

Репутация: нет
Всего: нет



День добрый. Суть проблемы такая: есть cgi-скрипт, который оменивается информацией с PostgreSQL и генерирует таблицу с данными из БД. Необходимо, чтобы данные обновлялись, допустим, каждый 2 секунды. Как это можно реализовать на perl? Заранее благодарен.
PM MAIL   Вверх
chaos
Дата 10.8.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Цитата(alt87 @ 10.8.2009,  05:36)
День добрый. Суть проблемы такая: есть cgi-скрипт, который оменивается информацией с PostgreSQL и генерирует таблицу с данными из БД. Необходимо, чтобы данные обновлялись, допустим, каждый 2 секунды. Как это можно реализовать на perl? Заранее благодарен.

обновлялись где? в браузере? если да то может проще на уровне клиента сделать таймер(на JS) ?
PM WWW   Вверх
alt87
Дата 10.8.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.8.2009

Репутация: нет
Всего: нет



Нужно, чтобы perl через определенные промежутки времени отправлял запрос к СУБД, а затем обновлял содержимое страницы. И проблема в том, как заставить perl это делать.
PM MAIL   Вверх
infarch
Дата 10.8.2009, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Цитата(alt87 @ 10.8.2009,  13:05)
Нужно, чтобы perl через определенные промежутки времени отправлял запрос к СУБД, а затем обновлял содержимое страницы. И проблема в том, как заставить perl это делать.

Сервер не обновляет клиента, будь то хоть перл, хоть нечто иное. Запрограммируй страницу на рефреш каждые n минут и получай новые данные. Или через Ajax по таймеру.
Если нужно периодически производить манипуляции с базой на сервере, удобно написать сервис который и будет этим заниматься.
PM MAIL   Вверх
Pfailed
Дата 10.8.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 2
Всего: 39



Может человеку что то вроде этого хочется?

Код

$_ = 1;
while(1)
{
       ...
      print $sth->fetchrow_array;
      ...
      sleep $timer;
}


Кароче постепенный вывод данных на страницу через определенные промежутки времени.


--------------------
PM MAIL   Вверх
alt87
Дата 11.8.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.8.2009

Репутация: нет
Всего: нет



Я правильно понял, что модуль CGI::Ajax позволяет обмениваться информацией с сервером без перегрузки страницы? То есть я смогу запрограммировать таймер с использованием системного времени, и через заданные промежутки времени смогу отправлять запросы с БД и обновлять часть содержимого страницы без ее полной перегрузки? Я уточню немного то, что мне требуется. Все это дело мне нужно для диплома. Страница будет иметь вид большой таблицы. Содержимое каждой ячейки соответствует значению из БД. Причем часть столбцов должна обновлять свои значения только при нажатии соответствующей кнопки. А остальные столбцы должны обновлять свои значения непрерывно по таймеру. Поэтому я думаю, что рефреш страницы через определенное время не выход.
PM MAIL   Вверх
infarch
Дата 12.8.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Цитата(alt87 @ 11.8.2009,  10:43)
Я правильно понял, что модуль CGI::Ajax позволяет обмениваться информацией с сервером без перегрузки страницы? 

Данный модуль я никогда не использовал, так что ничего про него сказать не могу. Однако аджаксом пользовался предостаточно. Могу сказать одно - никакие дополнительные модули для этого НЕ НУЖНЫ. Не стоит засорять сервер всевозможными модулями без необходимости (IMHO).

Сейчас посмотрел на этот модуль в CPAN. Судя по всему, он имеет смысл если вы генерите html с помощью cgi. Однако гораздо удобнее делать это с помощью template toolkit. И тем более инициатором обновления страницы все равно является клиент, а не сервер.

Как создать асинхронный запрос с помощью javascript можно узнать без малейших проблем - полон интернет инофрмации. Тем более это очень просто. Его хендлер на сервере ничем не отличается от любого другого. например, если надо вернуть некий JSON, пишите следующее:

Код

  my $json_data = "{var1:'xxx',var2:'yyy'}";
  print "Content-type: text/html; charset=ISO-8859-1\r\n\r\n";
  print $json_data;
  return 1;


Получив информацию через асинхронный запрос, парсите и юзаете ее как угодно.

А вообще, позволю себе маленькую рекламу. Попробуйте использовать ExtJS framework. Там есть все что нужно для генерации каких угодно таблиц, в том числе и обновляемых через ajax. Конечно, этот фреймворк не единственный в своем роде, но imho лучший.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.