Pregunta

Estoy intentando crear una página web con Ajax.

Ejemplo:

  1. Creo un archivo Perl / CGU que activa una publicación simple;

    Archivo: ..test.cgi? name = Thomas

    Texto: ¡Tu nombre es Thomas!

  2. Creo un archivo html que puede usar la publicación, pero luego la página tiene que volver a cargar. Utilizo la entrada de texto y un botón.

¿Cómo puedo usar Ajax, Perl y JSON fácilmente juntos? Así es como debería funcionar en conjunto, pero ¿cómo?

Html + Ajax / JavaScript CALL Perl + " JSON-perl-string " VOLVER A Ajax CONVERT-JSON - > Html

¿Fue útil?

Solución

Para JSON, pruebe el módulo JAN de CPAN .

Para usar XMLHttpRequest, recomiendo estos maravillosos tutoriales de IBM.

Mastering Ajax, Parte 1: Introducción a Ajax

Los dos artículos que probablemente más te interesarán son estos dos:

Mastering Ajax, Part 10 : Utilizando JSON para la transferencia de datos

Mastering Ajax, Parte 11: JSON en el lado del servidor

Puede obtener la serie completa de 11 Partes utilizando este enlace de búsqueda .

Otros consejos

Solo necesita que su solicitud devuelva JSON (puede usar el módulo JSON en CPAN para esto) en lugar de HTML. Esto significa que necesita un encabezado de tipo de contenido de application / json en lugar de text / html y luego debe usar ese JSON en su Javascript (usar su biblioteca de Javascript como jQuery o Prototype es su mejor apuesta aquí).

jquery proporciona soporte ajax y JSON muy sencillo con su API. Maneja todos los objetos XMLHttpRequest por ti. jQuery

Si su objetivo principal es evitar la actualización para actualizar la página, puede probar las secuencias de comandos remotas utilizando el objeto XMLHttpRequest en XML.

Más información sobre este aquí .

Pruebe el nuevo módulo CPAN Yote . Enlaza objetos javascript a perl a través de un rpc JSON.

Aquí hay un ejemplo de ello en el cliente:

Servidor

package Hello;
use base 'Yote::AppRoot';

sub hello {
  return "Hello World";

1;

Client

$.yote.init();
var hello_app = $.yote.fetch_app('Hello');

alert( hello_app.hello() );
   // outputs "Hello World"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top