Produktinformation http://www.hanser.de/deckblatt/deckblatt1.asp?isbn=3-446-40920-3&style=vorwort Seite 1 von 1 12.09.2006 Ajax und PHP Cristian Darie, Bogdan Brinzarea, Mihai Bucica, Filip Chereches Interaktive Webanwendungen für das Web 2.0 erstellen ISBN 3-446-40920-3 Vorwort Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40920-3 sowie im Buchhandel
Vorwort AJAX ist ein komplexes Phänomen, das für jeden eine andere Bedeutung hat. Anwender freuen sich, dass ihre Lieblingswebseiten benutzerfreundlicher und reaktionsschneller werden. Webentwickler lernen neue Techniken, um mühelos elegante Webanwendungen zu schreiben. AJAX scheint ja ein Tausendsassa zu sein! Ursprünglich ist AJAX ein Technologie-Mix, um die lästigen Ladezeiten von Internetseiten abzuschaffen, die beim Surfen ja immer einen Leerlauf bedeuten. Doch von der Abschaffung der Ladezeiten zu anderen, komplexeren Features in Websites ist es nur ein kleiner Schritt: Echtzeitvalidierung von Daten, Drag&Drop und dergleichen gab es bisher in Webanwendungen nicht. Die einzelnen Zutaten von AJAX sind zwar ausgereift (das XMLHttpRequestObject, das den Kern von AJAX bildet, wurde von Microsoft bereits 1999 aus der Taufe gehoben), aber ihre neue Rolle in den allerneuesten Web-Trends ist noch jung, und wir werden noch so manche Änderung erleben, ehe diese Technologien alle zum besten Nutzen der Anwender eingesetzt werden. Zu der Zeit, da dies geschrieben wird, gibt es den Namen AJAX gerade einmal ein Jahr. Natürlich ist AJAX nicht die Lösung für alle Probleme im Web, auch wenn es der aktuelle Hype suggerieren möchte. Wie jede Technologie kann auch AJAX überstrapaziert oder an der verkehrten Stelle eingesetzt werden. AJAX kämpft auch mit einigen eigenen Schwächen, wie etwa Browser-Inkonsistenzen. AJAX-spezifische Websites funktionieren nur auf Browsern mit JavaScript, lassen sich nicht so leicht mit Lesezeichen versehen und werden von Suchmaschinen nicht immer richtig geparst. Hinzu kommt, dass nicht jeder von A- JAX begeistert ist. Mancher entwickelt Enterprise-Architekturen mit JavaScript, mancher nicht. Wenn sich die ganze Aufregung erst einmal gelegt hat, wird man feststellen, dass der Mittelweg meistens der weiseste ist. In unserem Buch gehen wir einen pragmatischen und sicheren Weg, indem wir die relevanten Muster und Best Practices vermitteln, die wohl jeder Webentwickler früher oder später einmal brauchen wird. Wir erklären, wie man die üblichen Fallen vermeidet, wirkungsvollen AJAX-Code schreibt und Funktionalität erschafft, die sich leicht in heutige und zukünftige Webanwendungen integrieren lässt, ohne dass das Ganze rund um AJAX 10
Der Aufbau dieses Buchs neu aufgebaut werden muss. Das Wissen, das dieses Buch vermittelt, können Sie sofort in Ihren PHP-Anwendungen umsetzen. Wir hoffen, dass dieses Buch auch für Ihre Projekte nützlich sein wird. Die neuesten Details und Aktualisierungen zu dem Buch finden Sie unter http://ajaxphp.packt pub.com. Die Mini-Website zu diesem Buch enthält zusätzliche, kostenlose Kapitel und Ressourcen, die Sie sich ebenfalls anschauen sollten, wenn Sie die Zeit dazu haben. Der Aufbau dieses Buchs Kapitel 1: AJAX und die Zukunft der Webanwendungen ist eine Einführung in die Welt von AJAX und die gewaltigen Möglichkeiten, die es Webentwicklern und Firmen eröffnet, um ihren Kunden benutzerfreundliche Internetseiten zu bieten. Außerdem werden Sie in diesem Kapitel eine AJAX-fähige Webseite entwickeln, um einen Einblick in die einzelnen Komponenten von AJAX zu bekommen. Kapitel 2: Cleveres JavaScript für die Clientseite stellt die Technologien für AJAX-Web- Clients vor, nämlich JavaScript, das DOM, das XMLHttpRequest-Objekt und XML. Es ist zwar kein umfassendes Lehrbuch für alle diese Technologien, erklärt aber, wie man sie kombiniert, und schafft somit eine solide Grundlage für zukünftige Anwendungen. Kapitel 3: PHP und MySQL auf der Serverseite vervollständigt die theoretischen Grundlagen: Hier erfahren Sie, wie Sie smarte Server für die Interaktion mit Ihrem AJAX-Client einrichten können. Außerdem werden verschiedene Techniken zur Implementierung häufiger Arbeiten vorgestellt, darunter JavaScript-Sicherheit und Fehlerbehandlung. Kapitel 4: AJAX-Formularvalidierung zeigt, wie eine moderne, schnelle und sichere Formularvalidierung erstellt wird, die sowohl Echtzeit-Validierung mit AJAX als auch serverseitige Validierung bei der Formularübermittlung umfasst. Kapitel 5: AJAX-Chat präsentiert ein einfaches Online-Chat-System, das ausschließlich auf AJAX-Code basiert, ganz ohne Java-Applets, Flash oder all die anderen spezialisierten Bibliotheken, die von den meisten Chat-Anwendungen heutzutage eingesetzt werden. Kapitel 6: AJAX-Suggest und -Autocomplete ist ein Feature, das Google Suggest ähnelt. Es hilft dem Benutzer, PHP-Funktionen rasch zu finden, und leitet ihn auf die jeweilige Seite der offiziellen PHP-Hilfe weiter. Kapitel 7: Echtzeit-Charting mit AJAX und SVG beschreibt die Implementierung einer Echtzeit-Charting-Lösung mit AJAX und SVG. SVG (Scalable Vector Graphics) ist eine textbasierte Grafiksprache, mit der man sowohl Formen als auch Text erstellen kann. Kapitel 8: AJAX Grid erläutert, wie man mächtige AJAX-fähige Daten-Grids erstellen kann. Sie lernen außerdem, wie XML-Dokumente mit XSLT geparst werden, um die Ausgabe des Grids zu generieren. 11
Vorwort Kapitel 9: Ein RSS-Reader mit AJAX nutzt die PHP-Bibliothek SimpleXML sowie XML und XSLT für die Entwicklung eines einfachen RSS-Aggregators. Kapitel 10: Drag&Drop mit AJAX zeigt, wie man mit dem Script.aculo.us-Framework eine einfache Liste von Elementen mit Drag&Drop-Funktionalität erstellen kann. Anhang A: Preparing Your Working Environment erklärt, wie die erforderliche Software installiert und konfiguriert wird: Apache, PHP, MySQL und phpmyadmin. Die Beispiele in diesem Buch setzen voraus, dass Sie Ihre Arbeitsumgebung und Beispieldatenbank so eingerichtet haben, wie es hier beschrieben wird. Auf der Mini-Website zu diesem Buch unter http://ajaxphp.packtpub.com finden Sie die Online-Demos sämtlicher AJAX-Fallstudien. Erforderliche Ressourcen Um die Beispiele in diesem Buch durchspielen zu können, benötigen Sie PHP 5, einen Webserver und einen Datenbankserver. Wir haben den Code in mehreren Umgebungen getestet, aber hauptsächlich mit dem Webserver Apache 2 und MySQL 4.1 sowie MySQL 5 als Datenbanksystem. Sie können natürlich auch einen anderen Webserver oder ein anderes Datenbanksystem einsetzen, aber dann kann es sein, dass die geschilderten Vorgehensweisen nicht immer hundertprozentig zutreffend sind. Allerdings ist es wichtig, dass Sie PHP 5 oder höher verwenden, da wir einige Features benötigen, die in älteren Versionen noch nicht vorliegen, wie etwa die Unterstützung für objektorientierte Programmierung. Einzelheiten über die Konfiguration Ihres Computers können Sie in Anhang A nachlesen. Dort erfahren Sie, wie man die Beispieldatenbank für dieses Buch anlegt. Typografische Konventionen Für die verschiedenen Informationen in diesem Buch werden unterschiedliche Schriftarten benutzt. Im Folgenden sehen Sie Beispiele und Erläuterungen zu diesen Schriftarten. Code wird in drei Schrifttypen angegeben: Code-Elemente im Text sehen wie folgt aus: Andere Kontexte lassen sich mit der include-direktive einbeziehen. Codeblöcke werden folgendermaßen abgedruckt: // die Funktion ruft den Server über ein XMLHttpRequest-Objekt auf function process() { // ruft den vom Benutzer eingegebenen Namen ab name = document.getelementbyid("myname").value; // führt die Seite quickstart.php auf dem Server aus xmlhttp.open("get", "quickstart.php?name=" + name, false); // sendet synchronen Server-Request 12
Feedback } xmlhttp.send(null); // liest die Antwort handleserverresponse(); Wenn wir Sie auf bestimmte Teile eines Codeblocks besonders hinweisen möchten, drucken wir die entsprechenden Zeilen oder Elemente fett: // die Funktion ruft den Server über ein XMLHttpRequest-Objekt auf function process() { // ruft den vom Benutzer eingegebenen Namen ab name = document.getelementbyid("myname").value; // führt die Seite quickstart.php auf dem Server aus xmlhttp.open("get", "quickstart.php?name=" + name, false); // sendet synchronen Server-Request xmlhttp.send(null); // liest die Antwort handleserverresponse(); } Ein- und Ausgabe auf der Kommandozeile wird wie folgt angezeigt:./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-ssl --enable-auth-digest Neue Begriffe oder wichtige Wörter werden kursiv gedruckt. Wörter, die in der Bildschirmausgabe oder in Menüs oder Dialogfeldern erscheinen, werden im Text zum Beispiel wie folgt wiedergegeben: Mit einem Klick auf Weiter gelangen Sie zum nächsten Bildschirm. Warnungen oder wichtige Hinweise sowie Tipps und Tricks erscheinen eingerückt, wie hier. Feedback Wir freuen uns über das Feedback unserer Leser. Bitte teilen Sie uns mit, was Ihnen an diesem Buch gut oder weniger gut gefallen hat. Dieses Feedback ist uns wichtig, um Titel zu schaffen, aus denen Sie maximalen Nutzen ziehen können. Allgemeines Feedback senden Sie bitte per E-Mail an feedback@packtpub.com. Der Buchtitel sollte dabei im Betreff stehen. Wenn Sie einen Vorschlag für ein Buchprojekt haben, senden Sie uns diesen bitte in dem Formular SUGGEST A TITLE über www.packtpub.com oder per E-Mail an suggest@ packtpub.com. Möchten Sie zu einem Thema eigene Erfahrungen beitragen oder selber ein Buch schreiben, schauen Sie bitte in unseren Autorenleitfaden unter www.packtpub.com/authors. 13
Vorwort Beispielcode herunterladen Hierzu gehen Sie auf www.packtpub.com/support und wählen aus der Liste der Bücher das vorliegende aus, um den Code oder zusätzliche Ressourcen zu diesem Buch herunter zu laden. Es wird angezeigt, welche Dateien zum Download bereitstehen. Die herunter geladenen Dateien enthalten auch eine Gebrauchsanweisung. Errata und Fragen zu diesem Buch Auch wenn wir noch so sorgfältig über die Richtigkeit unserer Inhalte wachen, können immer Fehler passieren. Wenn Sie einen Fehler in einem unserer Bücher finden, sei es im Text oder im Code, sind wir für eine Benachrichtigung dankbar. So ersparen Sie anderen Lesern eine Enttäuschung und helfen mit, dass zukünftige Auflagen besser werden. Errata melden Sie, indem Sie auf www.packtpub.com/support gehen, dieses Buch auswählen, auf Submit Errata klicken und Ihren Kommentar eingeben. Ihre Meldung wird überprüft und der Liste der vorhandenen Errata hinzugefügt. Die gemeldeten Errata finden Sie ebenfalls unter www.packtpub.com/support. Fragen zu diesem Buch können Sie unter questions@packtpub.com stellen. Wir werden unser Bestes tun, um sie zu beantworten. 14