Das Modul ist sehr gut für relativ einfache Ajax-Anwendungen geeignet. Sobald es in andere Frameworks integriert werden soll, ist der „Spieltrieb“ des Entwicklers gefordert. Oft sind Lösungen im Internet zu finden, da andere sich schon mit den selben Problemen auseinandersetzen mussten.
HTML::Prototype
Prototype [2] ist ein sehr bekanntes Framework für Ajax. Auch hierfür gibt es auf CPAN ein entsprechendes Modul, das den Programmierer bei seiner Arbeit unterstützt. Mit HTML::Prototype kann das Schreiben von JavaScript komplett vermieden werden, was für JavaScript-Einsteiger sicherlich von Vorteil ist. Mit den folgenden Codezeilen wird die Prototype-Bibliothek ausgegeben:
print $prototype->define_javascript_functions;
Listing 4
Die meisten Methoden von HTML::Prototype liefern den JavaScript-Bereich für die Ajax-Funktionalität, während die HTML-Elemente im Template definiert werden müssen. Es gibt allerdings einige Ausnahmen: Funktionen, die einen JavaScript-Event-Handler verwenden (zum Beispiel link_to_remote), liefern das komplette HTML-Element mit dem zugehörigen JavaScript.
#!/usr/bin/perl -w
use CGI;
use HTML::Prototype;
my $cgi = CGI->new();
print $cgi->header();
my %params = $cgi->Vars;
if( $params{action} ){
print $params{test};
}
else{
my $field = $pt->observe_field('testid',{
update => 'view',
url => 'html_prototype_test.cgi',
with => "'action=echo;test='+value",
frequency => 1,
});
my $proto = $pt->define_javascript_functions;
print qq~<html><head>$proto</head>
<body><input type="text" id="testid">
<div id="view"></div>
$field</body></html>~;
}
Listing 5
Zunächst werden ein neues CGI-Objekt erzeugt, der Header ausgelesen und die Parameter geparst. Gibt es einen 'action'-Parameter, wird der Wert des Parameters 'test' zurückgeliefert.






