PHP VS. Javascript

Sie werden gern in einem Atemzug genannt, wenn von Webtechnologien gesprochen wird: PHP und Javascript. Beides sind stark verbreitete Programmiersprachen. So basieren über dreiviertel aller Websites auf PHP, und dank mobilen Endgeräten gewinnt Javascript zunehmend an Bedeutung. Beide Sprachen kommen bei der Entwicklung von Web-Lösungen zum Einsatz. Also fast das gleiche, irgendwie Webprogrammierung eben?

Grundlegende Arbeitsweise

PHP und Javascript haben erst mal recht wenig gemein. Am auffälligsten für den Nutzer ist, dass er mit PHP überhaupt nicht in Berührung kommt. Im Browser kann man einstellen ob man Javascript zulässt oder nicht, PHP taucht dort jedoch nicht auf. Betrachtet man den Quelltext einer Webseite, so findet man dort möglicherweise Javascript-Code eingebettet, aber niemals PHP-Code. Woher kommt das?

Javascript wird an den Betrachter einer Website ausgeliefert und der Browser führt es dann aus. Deshalb kann man diesbezüglich Einstellungen vornehmen und deshalb findet man von Javascript Spuren im Quelltext der Seite. PHP wird dagegen auf dem Server ausgeführt. Wird eine Webseite angefordert, so führt der Server zunächst den eingebetteten PHP-Code aus, erzeugt dadurch eine einfache HTML-Seite, die dann an den Browser des Betrachters geschickt wird. Das ist der grundliegende Unterschied bei der Arbeitsweise von PHP und Javascript: ersteres wird auf dem Server ausgeführt und gelangt nie zum Endnutzer, letzteres wird im Browser ausgeführt und ist somit einsehbar.

Vor- und Nachteile

Damit sind automatisch einige Vor- und Nachteile verbunden. Für PHP gilt: Wenn die Seite aufgerufen wird, kann dennoch nicht der PHP-Code eingesehen werden. Somit kann der Code nicht „gestohlen“ bzw. nicht nachvollzogen werden, wie die Seite aufgebaut ist. Das macht gezielte Angriffe und Sabotage schwerer und die Seite insgesamt sicherer. Allerdings hat der Server viel zu tun: Jedes Mal, wenn eine Seite angefordert wird, muss er den PHP-Code ausführen. Bei jedem Klick, der zu einer Änderung führen soll, muss der Browser wieder mit dem Server kommunizieren und der Server Code ausführen und Dateien ausliefern.

Dieses Problem birgt Javascript nicht. Der Server liefert den Code einfach aus – ob es sich um reinen HTML-Text handelt oder ob Javascript-Code darin steht kümmert ihn nicht. Arbeiten muss erst der Browser und somit der Rechner des Betrachters, was den Server bei vielen Besuchern deutlich entlastet. Auch sich dynamisch öffnende Pop-ups oder visuelle Effekte sind möglich, ohne dass erneut mit dem Server kommuniziert werden muss – das heißt auch, dass es keine Verzögerung durch die Übertragung über das Netz gibt. Allerdings kann der Betrachter den Code einsehen und somit diverse Schlüsse ziehen. Zudem vertraut nicht jeder Nutzer Javascript-Code. Denn da dieser im Browser ausgeführt wird, kann man ihn durchaus auch verwenden, um Sicherheitslücken auszunutzen oder Informationen zu sammeln, die der Nutzer vielleicht lieber verborgen hätte. Teilweise blockieren Nutzer deshalb die Ausführung von Javascript im Browser – oder schlicht und einfach deshalb, weil sie sich von Pop-ups gestört fühlen.

Bild

Anwendungsgebiete

Bei allen Vor- und Nachteilen haben PHP und Javascript vor allem sehr unterschiedliche Anwendungsgebiete innerhalb der Webprogrammierung, bedingt durch ihre unterschiedliche Arbeitsweise.

PHP kann mit der Datenbank kommunizieren, die auf dem Server läuft. Es holt Informationen aus ihr, verändert sie und kann neue Daten hinzufügen. Es baut die HTML-Seiten auf und kann beispielsweise abhängig davon, welcher Nutzer angemeldet ist, eine komplett andere Seitenstruktur verwenden oder unterschiedliche Dateien einbinden. Mit PHP kann man gestalten, was der Betrachter bekommen soll, welche Bilder, welchen Text, welche Schaltflächen, welche Funktionalität. Und er bekommt auch nur genau das und nicht mehr.

Javascript macht die Seite dynamisch. So lassen sich beispielsweise Formularfelder dynamisch einblenden: Sind alle momentan sichtbaren Felder gefüllt, so erscheint eine neue Zeile mit Eingabefeldern. Auch Slideshows können animiert werden. Im Header einer Seite sind also möglicherweise fünf verschiedene Bilder, die jeweils nach einer gewissen Zeit einander abwechseln. Aber: Alle Bilder waren von Anfang an auf der Seite vorhanden, sie waren nur nicht alle sichtbar. Mit Javascript kann das Aussehen von Texten, Überschriften und Feldern dynamisch verändert werden, wenn der Nutzer eine bestimmte Aktion durchführt. Berüchtigt ist auch die Rechtsklick-Sperre, die man heute glücklicherweise kaum noch antrifft: Bei einem Rechtsklick geschieht entweder gar nichts, oder ein Pop-up erscheint mit dem sinngemäßen Text „Hier darf nichts kopiert werden.“ Denn der vermeintliche Sinn dieser Sperre ist es, das Kopieren von Texten und Bildern von einer Website zu verhindern – was sich aber äußerst leicht umgehen lässt und den Nutzer völlig unnötig einschränkt. Realisiert wird diese Sperre wie auch das Pop-up mittels Javascript.

Hand in Hand: AJAX

PHP und Javascript können auch direkt Hand in Hand arbeiten. Interessant wird das beispielsweise, wenn es um gekoppelte Auswahlfelder geht. So kann über ein Auswahlfeld das Produkt gewählt werden und in einem zweiten Auswahlfeld stehen dann die bei diesem Produkt verfügbaren Farben zur Wahl. Hier muss bei einer Aktion des Nutzers – zum Beispiel das Auswählen des Produkts – eine Datenbankabfrage stattfinden, um zu ermitteln welche Farben lieferbar sind und anschließend muss das zweite Auswahlfeld mit diesen Möglichkeiten gefüllt werden. Klassischerweise müsste die Seite nach Auswahl des ersten Feldes komplett neu vom Server aufgebaut und neu ausgeliefert werden. Das führt zu unschönen Wartezeiten in der Bedienung. Oder alle möglichen Varianten, wie das zweite Auswahlfeld gefüllt werden könnte, müssten vor Auslieferung der Seite erstellt und mitgeschickt werden, was sehr viel unnötigen Code bedeuten würde.

Hier kommt AJAX (Asynchronous Javascript And XML) zum Einsatz. Es ermöglicht Anfragen an den Server auszuführen, ohne die Seite neu laden zu müssen. Im Fall der Auswahlfelder wird über Javascript registriert, dass ein Eintrag ausgewählt wurde. Als Folge wird eine Anfrage an den Server gestellt, der ein gewisses Stück PHP-Code ausführt und in diesem Fall in der Datenbank nachschlägt, welche Farben für dieses Produkt lieferbar sind. Diese Information sendet er zurück an den Browser, der nun über Javascript die entsprechenden Einträge in das Feld einfügen kann. Der Nutzer bemerkt davon höchstens eine kurze Verzögerung, bis das zweite Auswahlfeld benutzbar ist.

Fazit

PHP und Javascript haben viele Berührungspunkte und sind doch sehr verschieden. PHP wird auf dem Server ausgeführt und kümmert sich um den Aufbau der Seite, während Javascript im Browser auf dem Rechner des Betrachters ausgeführt wird und die Seite durch dynamische Effekte lebendig macht. Durch die große Vielfalt an Funktionen und die unterschiedlichen Herangehensweisen bleiben dennoch verschiedenste Möglichkeiten, wie eine spezielle Funktion realisiert werden kann. Die Entscheidung, welche Mittel aus welcher Programmiersprache man hierbei nutzt, um zu einer eleganten und performanten Lösung zu kommen, erfordert Wissen und Erfahrung.

Weiterführende Links

Einleitung eines Javascript-Tutorials mit vielen Hintergrundinformationen: wiki.selfhtml.org

Was kann PHP? Einführung eines PHP-Manuals: php.net/manual