Pergunta

Eu estou tentando fazer uma página web com Ajax.

Exemplo:

  1. eu crio um arquivo Perl / CGU que desencadeia um post simples;

    arquivo:? ..Test.cgi name = Thomas

    Texto volta: Seu nome é Thomas

  2. Eu criar um arquivo HTML que pode usar o post, mas então a página tem que recarregar. Eu uso a entrada de texto e um botão.

Como posso usar Ajax, Perl e JSON fácil juntos? É assim que devem trabalhar juntos, mas como?

Html + Ajax / JavaScript CHAMADA Perl + "JSON-perl-string" de retorno ao Ajax CONVERT-JSON -> HTML

Foi útil?

Solução

Para JSON tentar o CPAN JSON módulo .

Para usar o XMLHttpRequest eu recomendo estes tutoriais maravilhosas da IBM.

Mastering Ajax, Part 1: Introdução ao Ajax

Os dois artigos que você provavelmente vai estar mais interessados ??em são estes dois:

Mastering Ajax, Part 10 : Usando JSON para transferência de dados

Mastering Ajax, Part 11: JSON no lado do servidor

Você pode obter toda a série 11 Parte usando esta pesquisa ligação .

Outras dicas

Você só precisa ter o seu pedido de retorno JSON (você pode apenas usar o JSON módulo no CPAN para isso) em vez de HTML. Isto significa que você precisa de um cabeçalho do tipo de conteúdo de application / json em vez de text / html e, em seguida, você precisa usar esse JSON na sua Javascript (usando uma biblioteca Javascript como jQuery ou Prototype é a sua melhor aposta aqui).

jQuery fornece muito fácil ajax e suporte JSON com a sua API, Ele lida com todos os objetos XMLHttpRequest para você. jQuery

Se o seu objetivo principal é evitar refrescante para atualizar a página que você poderia tentar scripting remoto usando o objeto XMLHttpRequest em XML.

Mais sobre isso aqui .

Dê o novo CPAN módulo Yote uma tentativa. Ele se liga objetos JavaScript para perl através de um JSON-RPC.

Aqui está um exemplo disso no cliente:

Servidor

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

sub hello {
  return "Hello World";

1;

Cliente

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

alert( hello_app.hello() );
   // outputs "Hello World"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top