Question

J'essaie de créer une page Web avec Ajax.

Exemple:

  1. Je crée un fichier Perl / CGU qui déclenche une publication simple;

    Fichier: ..test.cgi? name = Thomas

    Texte en retour: Votre nom est Thomas!

  2. Je crée un fichier HTML qui peut utiliser la publication, mais la page doit ensuite être rechargée. J'utilise la saisie de texte et un bouton.

Comment utiliser simultanément Ajax, Perl et JSON easy? C’est ainsi que cela devrait fonctionner ensemble, mais comment?

Html + Ajax / JavaScript CALL Perl + " Chaîne JSON-perl " RETURN-TO Ajax CONVERT-JSON - > Html

Était-ce utile?

La solution

Pour JSON, essayez le module JAN CPAN .

Pour utiliser XMLHttpRequest, je vous recommande ces merveilleux tutoriels d’IBM.

Maîtriser Ajax, Partie 1: Introduction à Ajax

Les deux articles qui vous intéresseront probablement le plus sont les deux suivants:

Maîtriser Ajax, Partie 10 : Utilisation de JSON pour le transfert de données

Maîtriser Ajax, Partie 11: JSON côté serveur

Vous pouvez obtenir l'intégralité de la série des 11 parties en utilisant ce lien de recherche .

Autres conseils

Votre application doit simplement renvoyer JSON (vous pouvez simplement utiliser le module JSON . sur CPAN pour cela) au lieu de HTML. Cela signifie que vous avez besoin d’un en-tête Content-type pour application / json au lieu de text / html, puis vous devez utiliser ce JSON dans votre code Javascript (utiliser une librairie Javascript comme jQuery ou Prototype est votre meilleur choix ici).

jquery fournit une prise en charge ajax et JSON très facile avec leur API. Il gère tous les objets XMLHttpRequest pour vous. jQuery

Si votre objectif principal est d'éviter l'actualisation de la mise à jour de la page, essayez de créer un script à distance en utilisant l'objet XMLHttpRequest au format XML.

En savoir plus sur cet ici .

Essayez le Yote du nouveau module CPAN. Il lie les objets javascript à perl via un rpc JSON.

En voici un exemple sur le client:

Serveur

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"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top