PDF de programación - Perl y Ajax

Imágen de pdf Perl y Ajax

Perl y Ajaxgráfica de visualizaciones

Publicado el 28 de Noviembre del 2019
434 visualizaciones desde el 28 de Noviembre del 2019
1,0 MB
28 paginas
Creado hace 15a (27/05/2008)
Esther González Rodríguez

28 de mayo de 2008

PERL Y AJAX

CGI::Ajax

ÍNDICE

 Webs estáticas: HTML
 Webs dinámicas: DHTML
 CGI’s
 AJAX
CGI::Ajax
 CGI::Ajax
 Métodos
 Ejemplos
 Conclusiones
 Bibliografía

Programación en paralelo II

2

WEBS ESTÁTICAS: HTML

 Realizadas en XHTML o HTML.

 Para cambiar los contenidos hay que acceder al

servidor.

 El proceso de actualización es lento.

 No se pueden usar bases de datos, foros, etc.

Programación en paralelo II

3

WEBS DINÁMICAS: DYNAMICHTML

 Técnicas que permiten crear sitios web interactivos

usando HTML combinado con otros lenguajes. Así, es
posible crear páginas cuyo contenido sea diferente
según el usuario que las invoque.

 En el cliente: JavaScript
 En el cliente: JavaScript

JavaScript, VBScript
JavaScript, VBScript

VBScript, Flash
VBScript, Flash

Flash, CSSCSS,
Flash, CSSCSS,

DOMDOM.

EG1

 En el servidor: ASPASP, PHPPHP, JSPJSP, CGICGI.

 Usos (sin compatibilidad entre navegadores):

 Acceso a bases de datos.
 Tiendas virtuales.
 Webs con distintos aspectos según los roles…

4

Programación en paralelo II

Diapositiva 4

EG1

Modelo a través de la cual los programas y scripts pueden acceder y modificar dinámicamente el contenido, estructura y estilo de los
documentos HTML y XML.

Su objetivo es facilitar contenido dinámico en las páginas web.
Esther González; 18/05/2008

CGI’S (COMMON GATEWAY INTERFACE)

 Interfaz entre los servidores estándar HTTP y los

“programas dedicados” que se encargan de
resolver algún servicio que le delega el servidor.

 Es una de las primeras formas que surgió de

crear contenido dinámico para las páginas web.

Programación en paralelo II

5

CGI’S (2)

 Es independiente del lenguaje de programación

del servidor.

 La salida del programa, objetos MIME, es

enviada al cliente (en vez del archivo estático).
enviada al cliente (en vez del archivo estático).

 Usos habituales: contador, buscador, correo,

estadísticas, administración remota del servidor.

Programación en paralelo II

6

CGI’S (3)

 Cliente/servidor utilizando CGI:

Programación en paralelo II

7

AJAX (ASYNCHRONOUS JAVASCRIPT AND XML)

 Técnica para crear páginas web más interactivas.

 Se ejecuta en el cliente (navegador) y mantiene

comunicación asíncrona con el servidor en
segundo plano.
segundo plano.

 Permite realizar cambios en partes de una web

sin necesidad de recargar la página entera.

 Ventajas  aumenta la interactividad, la

velocidad y la usabilidad de las webs.

8

AJAX (2)

 Es una combinación de 4 tecnologías existentes

previamente:









: para el diseño.

: accedido en el usuario por el lenguaje de script

para mostrar e interactuar con la información.
para mostrar e interactuar con la información.

: objeto para intercambiar datos

asíncronamente con el servidor.

: formato para la transferencia de vuelta al

servidor.

 Ejemplos de uso: Gmail, Google Maps, Flickr.

9

CGI::AJAX

 Autores:

 Brian C. Thomas - [email protected]
 Brent Pedersen - [email protected]

 Homepage:

 http://www.perljax.us/

 Descarga:

 http://search.cpan.org/~bct/CGI-Ajax-

0.701/lib/CGI/Ajax.pm

 Requisitos:

 Servidor Apache
 Módulo CGI
 Módulo Class::Accessor
 Módulo CGI::Ajax

Programación en paralelo II

10

CGI::AJAX (2)

 Módulo orientado a objetos.

 Mecanismo único para utilizar código Perl en páginas

web.

 Permite que una subrutina Perl se invoque de forma

asíncrona cuando ocurre:
asíncrona cuando ocurre:
.
 un
 una

(httprequest).

 Generalmente, el usuario no tiene que escribir código

JavaScript.

 Excepciones  código asociado a eventos: onClick,

onKeyUp, onMouseOver…

11

Programación en paralelo II

MÉTODO: BUILD_HTML()

:

 Asocia el objeto CGI ($cgi) con el objeto CGI::Ajax

($pjx).

 Inserta código JavaScript entre <HEAD>…</HEAD>.
 Construye la página o la parte a recargar de ella.

 El objeto CGI.
 Un coderef o un string que contenga el HTML.

:

 El código HTML.

:

:

 La realiza el propio script.

Programación en paralelo II

12

MÉTODO: SHOW_JAVASCRIPT()

:

 Construir el código JavaScript que se incrustará en la

página.

 -

::

:

 Código JavaScript.

:

 La realiza el propio script.

Programación en paralelo II

13

MÉTODO: REGISTER()

:

 Añade un nombre de función y una referencia de

código al hash de referencias global, después que es
creado el objeto.

:

:

 Nombre de función.
 Nombre de función.
 Referencia de código.

 -

:

 La realiza el propio script.

14

Programación en paralelo II

OTROS MÉTODOS

 JSDEBUG()

 Funciones de debug para la generación del código

Ajax.

 DEBUG()
 DEBUG()

 Muestra información de debug en el log del servidor.

Programación en paralelo II

15

EJEMPLO 1

#!c:/Perl/bin/perl.exe
use strict;
use CGI;
use CGI::Ajax;

my $cgi = new CGI;

my $PWD_CORRECTO = "perl";

#Creamos un nuevo objeto AJAX y le asociamos una función
my $pjx = new CGI::Ajax( 'checar_pwd' => \&checar_pwd );

# Desplegamos el HTML
print $pjx->build_html( $cgi, \&mostrar_formulario);

16

Programación en paralelo II

EJEMPLO 1 (2)

sub checar_pwd{

#Recibimos los datos envíados
my $entrada = shift;

if($entrada eq "") {
if($entrada eq "") {

return("Introduce la contraseña secreta

Introduce la contraseña secreta");

} if($entrada eq $PWD_CORRECTO) {

return("Acertaste <a
Acertaste <a
hrefhref==\\"http://google.com

"http://google.com\\">Entra al sitio secreto</a>

">Entra al sitio secreto</a>");

} else{

return("$entrada es incorrecto

$entrada es incorrecto");

}

}

Programación en paralelo II

17

EJEMPLO 1 (3)

sub mostrar_formulario {

my $html = <<EOHTML;

<HTML>
<BODY>

Escribe la contraseña:
<input type="text" name="pwd" id="pwd"
onKeyUp="checar_pwd( ['pwd'], ['resultado'] );">
onKeyUp="checar_pwd( ['pwd'], ['resultado'] );">
<br>
<div id="resultado"></div>
<p>

</BODY>
</HTML>

EOHTML
return $html;

}

Programación en paralelo II

18

EJEMPLO 2

#!c:/Perl/bin/perl.exe
use strict;
use warnings;
use CGI;
use CGI::Ajax;
use CGI::Ajax;

my $cgi = CGI->new();
my $ajax = CGI::Ajax->new(check_username=>\&check_username);

$ajax->JSDEBUG(1);

print $ajax->build_html( $cgi, \&main )

19

EJEMPLO 2
sub check_username {

my ( $user ) = @_;
return unless -f ‘/tmp/users.txt';
open my $fh, '<', ‘/tmp/users.txt‘ or return "open(/tmp/users.txt): $!";

while (<$fh>) {
chomp;
if (lc $_ eq lc $user) {
return "Username '$user' taken! <img src=\"../Flores.jpg\" width=210

height=140 border=0 alt=\"Unas flores\">" if($user=~/alu.*/);

return "Username '$user' taken! <img src=\"../Delfines.jpg\"

width=210 height=140 border=0 alt=\"Unos delfines\">"
if($user=~/profe.*/);

return "Username '$user' taken! <img src=\"../Prohibido.jpg\"
width=210 height=140 border=0 alt=\"Prohibido\">" if($user=~/.*/);

}

} return '';

}

Programación en paralelo II

20

EJEMPLO 2 (2)

sub save_username {
my ( $user ) = @_;
open my $fh, '>>', /tmp/users.txt‘ or die
"open(>>/tmp/users.txt): $!";
print $fh "$user\n";
print $fh "$user\n";
close $fh;
return;

}

Programación en paralelo II

21

EJEMPLO 2 (3)
sub main {

my $html = <<HTML;
<html><head>
<title>Signup!</title>
<script type="text/javascript" src="binding.js"></script>
</head><body>
<h1>Signup!</h1>
HTMLHTML

if ( my $user = $cgi->param('user') ) {

my $err = check_username( $user );
if ( $err ) {

$html .= "<p class='problem'>$err</p>";

} else {

}

save_username( $user );
$html .= "<p>Account <em>$user</em> created!</p>\n";

22

}

Programación en paralelo II

EJEMPLO 2 (4)

my $url = $cgi->url(-relative => 1);
$html .= <<HTML;

<form action="$url" method="post">
<p>Please fill in the details to create a new Account.</p>
<p>Username: <input type="text" name="user" id="user"/>
<em id="baduser"></em></p>
<em id="baduser"></em></p>
<p>Password: <input type="password" name="pass"

id="pass"/></p>

<p><input type="submit" name="submit"

value="SIGNUP"/></p>

</form></body></html>
HTML

return $html;

} # end main

Programación en paralelo II

23

EJEMPLO 2 (5)

Programación en paralelo II

24

CONCLUSIONES

 Único mecanismo para utilizar Perl y Ajax.

 Fácil de usar, muy orientado al usuario final.

Aísla al usuario del código JavaScript.
 Aísla al usuario del código JavaScript.

 También es posible escribir código para manejar

los eventos JavaScript.

 Es un método rápido de obtener páginas web que

ofrecen al usuario una mayor interactividad.

25

Programación en paralelo II

BIBLIOGRAFÍA

 http://www.desarrolloweb.com/articulos/391.php
 http://es.wikipedia.org/wiki/Common_Gateway_I

nterface

 http://search.cpan.org/
http://www.perljax.us/
 http://www.perljax.us/
 http://perlenespanol.baboonsoftware.com/tutorial

es/cgi/perl_y_ajax.html

 http://www.perl.com/pub/a/2006/03/02/ajax_and_

perl.html

Programación en paralelo II

26

Esther González Rodríguez

28 de mayo de 2008

PERL Y AJAX

CGI::Ajax
  • Links de descarga
http://lwp-l.com/pdf16981

Comentarios de: Perl y Ajax (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad