2009-05-05 2 views
4

Я пытаюсь создать веб-страницу с помощью Ajax.Как я могу использовать Ajax, perl и JSON легко вместе?

Пример:

  1. создать файл Perl/Г, который вызывает простой пост;

    Файл: ..test.cgi имя = Томас

    Текст обратно: Ваше имя Томас!

  2. Я создаю html-файл, который может использовать сообщение, но затем страница должна перезагрузиться. Я использую ввод текста и кнопку.

Как я могу использовать Ajax, Perl и JSON легко вместе? Вот как это должно работать вместе, но как?

Html + Ajax/JavaScript ВЫЗОВ Perl + "JSON жемчужно-строка" RETURN-TO Ajax CONVERT-JSON -> Html

ответ

12

Для JSON попробуйте CPAN JSON module.

Для использования XMLHttpRequest я рекомендую эти замечательные учебники от IBM.

Mastering Ajax, Part 1: Introduction to Ajax

Две статьи вы, вероятно, наиболее заинтересованы в являются эти два:

Mastering Ajax, Part 10: Using JSON for data transfer

Mastering Ajax, Part 11: JSON on the server side

Вы можете получить весь 11 часть серии using this search link.

+0

Спасибо за очень хороший ответ .. :) – jeje1983

1

Если ваша главная цель состоит в том, чтобы избежать освежающе, чтобы обновить страницу, которую вы могли бы попробовать удаленные сценарии используя объект XMLHttpRequest в XML.

Подробнее об этом here.

+0

Ок .. Это начало чего-то .. Спасибо. – jeje1983

4

Вам просто нужно вернуть ваше приложение JSON (вы можете просто использовать модуль JSON для CPAN для этого) вместо HTML. Это означает, что вам нужен заголовок Content-type приложения/json вместо text/html, а затем вам нужно использовать JSON в своем Javascript (с помощью библиотеки Javascript, такой как jQuery или Prototype, лучше всего здесь).

3

jquery обеспечивает очень легкую поддержку ajax и JSON с их API, он обрабатывает все объекты XMLHttpRequest для вас. jQuery

1

Дайте новый модуль CPAN Yote. Он связывает объекты javascript с perl через JSON rpc.

Вот пример этого на клиенте:

Сервер

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" 
Смежные вопросы