Nun folgt die Aktion, welche die Ajax-Funktionalität abfängt und auf der Seite darstellt. Dies geschieht über ein so genanntes „observe_field“ – ein Textfeld, das in gewissen Abständen (über „frequency“ einstellbar) die mit dem Parameter „url“ festgelegte URL aufruft. Der erste Parameter für das observe_field ist die ID des Textfeldes, dessen Inhalt überwacht werden soll. Was an die URL übergeben werden soll, wird über den Parameter „with“ festgelegt,
Die Prototype-Bibliothek wird in der Variable „$proto“ gespeichert. Für die HTML-Ausgabe wird das gesamte JavaScript in den head-Bereich des HTML geschrieben und die JavaScript-Funktion, die das Textfeld überwacht, in den <div>-Container unterhalb des Feldes eingesetzt.
Genauso übersichtlich und einfach sind alle weiteren Funktionen des Moduls nutzbar. Mittlerweile ist ein Großteil der Prototype-Funktionen im Modul umgesetzt.
Fallen von HTML::Prototype
Wenn Parameter an eine URL übergeben werden sollen (zum Beispiel http://localhost/script.cgi?action=test), muss bei den Optionen der Parameter „with“ eingestellt werden. Dabei ist darauf zu achten, dass der String, der im JavaScript ankommt, mit Quotes versehen ist. Deshalb sieht es zum Beispiel so aus:
with => "'action=show_detail;id=$id'",
Listing 6
Mit diesem Modul kann man die Arbeit mit JavaScript auf ein absolutes Minimum reduzieren. Allerdings ist die Dokumentation an einigen Stellen sehr dürftig. Gerade für Anfänger ist es schwierig, alle Funktionalitäten zu nutzen – da hilft nur ausprobieren.
Fazit
Mit CGI::Ajax gibt es ein Modul, das für Ajax-Einsteiger sehr gut geeignet ist. Die Einbindung in Frameworks ist nicht optimal, aber mit ein paar kleinen Tricks gut machbar. Wer sich mit Ajax und der Prototype-Bibliothek auskennt, der wird sich mit HTML::Prototype anfreunden können. Die dürftige Dokumentation wird durch die umfangreiche Funktionalität wieder wettgemacht.




