Frage

Ich versuche, eine Webseite mit Ajax zu machen.

Beispiel:

  1. ich eine Perl / CGU-Datei, die eine einfache Post auslöst;

    Datei: ..test.cgi name = Thomas

    Text zurück: Ihr Name ist Thomas

  2. ich eine HTML-Datei, die den Beitrag verwenden kann, aber dann wird die Seite neu zu laden hat. Ich benutze Texteingabe und eine Taste.

Wie kann ich mit Ajax, Perl und JSON einfach zusammen? Dies ist, wie es zusammenarbeiten sollte, aber wie?

Html + Ajax / JavaScript CALL-Perl + "JSON-perl-string" Return-to Ajax convert-JSON -> HTML

War es hilfreich?

Lösung

Für JSON versuchen, den CPAN JSON-Modul .

Für das XMLHttpRequest mit empfehle ich diese wunderbaren Tutorials von IBM.

Mastering Ajax, Teil 1: Einführung Ajax

Die beiden Artikel, die Sie wahrscheinlich am meisten interessiert sein werden in diese beiden sind:

Mastering Ajax, Part 10 : JSON für die Datenübertragung

Verwenden

Mastering Ajax, Teil 11: JSON auf der Serverseite

Sie können die gesamte 11-teilige Serie mit diese Suche Link .

Andere Tipps

Sie müssen nur Ihre Anwendung Rückkehr JSON haben (Sie können die gerade benutzen JSON Modul auf CPAN für diese) anstelle von HTML. Dies bedeutet, dass Sie einen Content-Type-Header von application / json benötigen anstelle von text / html und dann müssen Sie das JSON in Ihrem Javascript verwenden (eine Javascript-Bibliothek wie jQuery oder Prototype ist die beste Wahl hier).

jquery bietet eine sehr einfache AJAX und JSON-Unterstützung mit ihrer API, Es behandelt alle die XMLHttpRequest-Objekte für Sie. jQuery

Wenn Ihr Hauptziel ist es erfrischend zu vermeiden, um die Seite zu aktualisieren Sie mit dem XMLHttpRequest-Objekt in XML Remote Scripting versuchen könnten.

Mehr dazu hier .

Geben Sie den neuen CPAN Modul Yote versuchen. Es bindet JavaScript-Objekte über einen JSON-RPC Perl.

Hier ist ein Beispiel davon auf dem Client:

Server

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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top