четверг, 21 января 2010 г.

mem #12

Перевод грубый и приблезительный, пока не работал с этим модулем. Поработаю, перепишу.
НАЗВАНИЕ
  CGI::Ajax - перловый модуль для написания асинхронных веб приложений

СИНОПСИС
  use strict;
  use CGI;      # или любой другой CGI:: из handler/decoder
  use CGI::Ajax;
 my $cgi = new CGI;
  my $pjx = new CGI::Ajax( 'exported_func' => \&perl_func );
  print $pjx->build_html( $cgi, \&Show_HTML);
 sub perl_func {
  my $input = shift;
  # do something with $input
  my $output = $input . " was the input!";
  return( $output );
  }
 sub Show_HTML {
  my $html = <<EOHTML;
  <HTML>
  <BODY>
  Enter something: 
  <input type="text" name="val1" id="val1"
  onkeyup="exported_func( ['val1'], ['resultdiv'] );">
  <br>
  <div id="resultdiv"></div>
  </BODY>
  </HTML>
  EOHTML
  return $html;
  }
  Когда вы используете CGI::Ajax с приложением, оно отправляет собственный заголовок,
  можно его поскипать:
 my $pjx = new CGI::Ajax(
  'exported_func' => \&perl_func,
  'skip_header'   => 1,
  );
  $pjx->skip_header(1);
  
  print $pjx->build_html( $cgi, \&Show_HTML);
 *полнофункциональные примеры лежат в папке 'scripts/' дистрибутива*

ОПИСАНИЕ
  CGI::Ajax объектно ориентированный модуль предоставляющий уникальный механизм
  для использования perl асинхронно из HTML страниц с javascript.
  CGI::Ajax освобождает пользователя от написания большого количества кода,
  за исключением объединения экспортируемого метода с определеннм документом
  событием(таким как onClick, onKeyUp, и т.п.). CGI::Ajax так же хорошо 
  совмещается с HTML содержащим более сложный код javascript.

  CGI::Ajax поддерживает методы возвращающие один или множество
  результатов на страницу, и поддерживает возврат значений для множества
  DIV элементов на HTML странице.
  При использовании CGI::Ajax, URL для HTTP запросов GET/POST генерируется
  автоматически на основании вывода событий HTML и страница динамически
  обновляется получая данные из функций perl.
  CGI::Ajax поддерживает маппинг URL для своих функций, так что вы можете
  распределить код по нескольким скриптам.

  Кроме Class::Accessor, модуля используемого для генерации методов доступа
  CGI::Ajax, CGI::Ajax не требует установки дополнительных пакетов или системы
  управления контентом, и т.п.

  Мы добавили поддержку для других CGI handler/decoder модулей, таких как
  CGI::Simple или CGI::Minimal, но мы не можем протестировать их, так как
  работаем только с mod_perl2. CGI::Ajax проверяет наличие header() метода
  для объекта CGI и использует его. Если method() не доступен, он создаёт
  собственный минимальный заголовок.
  Мы стараемся свести генерируемый javascript к минимуму, но всё же предоставить
  пользователю разнообразные методы работы с CGI::Ajax. И ОЧЕНЬ мало javascript.

Комментариев нет:

Отправить комментарий