Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 25 Serverseitige Technologien
  gp 25.1 Variablentausch
  gp 25.2 Anwendungen
    gp 25.2.1 Newsticker
    gp 25.2.2 Bankleitzahlen

Von einem gewissen Alter ab tut auch die Freude weh. – Charlie Chaplin

Kapitel 25 Serverseitige Technologien

Früher bestand das World Wide Web aus lauter statischen Webseiten, und wer etwas auf sich hielt, eignete sich JavaScript an und stach dadurch aus der Masse hervor. Mittlerweile ist JavaScript so weit verbreitet, dass einige Seiten gar nicht mehr ohne die clientseitige Skriptsprache auskommen. Wer aber heutzutage »in« sein will, muss einen Schritt weiter gehen und serverseitige Mittel einsetzen. Serverseitige Skriptsprachen laufen – wie der Name schon sagt – auf dem Webserver ab. Es handelt sich also, vereinfacht gesagt, um Programme, die HTML-Dateien ausgeben.

In den vorangegangenen Kapiteln dieses Buches wurden bereits immer wieder mal einige der Vor- und Nachteile von serverseitigen Technologien im Vergleich zu clientseitigen Technologien erläutert. Serverseitige Skriptsprachen sind meist ungleich mächtiger, da sie unter anderem auf das Dateisystem des Servers und auf Datenbanken zugreifen können. Clientseitige Skriptsprachen dagegen erfordern keine Verbindung zu einem Server und sind dadurch – beispielsweise in Hinblick auf die Formularüberprüfung – deutlich leistungsfähiger.

In diesem Kapitel werden einige Beispiele für die Interaktion von server- und clientseitigen Techniken gezeigt. Dazu war es leider notwendig, bei der Serverseite Einschränkungen vorzunehmen. Es gibt eine Reihe von serverseitigen Skriptsprachen und -technologien: ASP(.NET), JSP, Perl, PHP und Python, um nur einige zu nennen. Es ist nicht möglich, all diese Technologien gleichzeitig zu berücksichtigen. Dennoch versuche ich, jeweils mehrere Technologien vorzustellen, um immer eine Alternative bieten zu können.

Der weltweit am häufigsten eingesetzte Webserver, der Apache Webserver (für viele Betriebssysteme und auch im Quellcode erhältlich unter http://httpd.apache.org/), unterstützt eine Reihe von Skriptsprachen, darunter auch Perl und PHP. Perl war lange Zeit der »Marktführer«, was auch an der Integration der Skriptsprache in die Betriebssysteme UNIX und Linux und an der damit verbundenen riesigen Verbreitung lag. Mitt-lerweile liefern die neueren Linux-Distributionen ebenfalls noch den PHP-Sprachinterpreter mit, so dass diese neuere Skriptsprache langsam, aber sicher aufholt. Wir haben uns dafür entschieden, hier PHP den Vorzug zu geben, denn diese Sprache ist – einmal installiert – unserer Meinung nach leichter zu erlernen und hat für den Anfänger weniger Frustpotenzial als Perl.

Die insbesondere im Entwicklerbereich verbreitete Windows-Plattform soll auch bedient werden. Hier ist die Microsoft-Technologie ASP.NET – der Nachfolger von ASP, Active Server Pages – verbreitet, da sie direkt in den Webserver integriert ist. Bei ASP handelt es sich um keine Programmiersprache, sondern um eine Technologie. Die Programmierung selbst muss in einer Skriptsprache erfolgen, wobei im Lieferumfang Visual Basic, C# und JScript.NET (siehe Kapitel 26) enthalten sind. Auch wenn dies hier ein JavaScript-Buch ist, wird im Folgenden dennoch Visual Basic eingesetzt. JScript wird im folgenden Kapitel behandelt.


Galileo Computing

25.1 Variablentausch  toptop

Was passiert, wenn ein Browser von einem Webserver ein serverseitiges Skript anfordert? In der Regel werden die folgenden Schritte durchgeführt:

gp  Der Browser schickt die Anforderung an den Webserver.
gp  Der Webserver erhält die Anforderung.
gp  Der Webserver stellt aufgrund der Dateiendung fest, dass es sich um ein serverseitiges Skript handelt.
gp  Der Webserver veranlasst, dass das serverseitige Skript ausgeführt wird (beispielsweise, indem der Sprachinterpreter aufgerufen und die (HTML-)Ausgabe abgefangen wird).
gp  Der Webserver schickt das Ergebnis (in der Regel HTML-Code) des serverseitigen Skripts an den Browser.
gp  Der Browser empfängt die Daten und interpretiert sie (zeigt sie an).

Die serverseitigen Bestandteile der Seite werden also komplett auf dem Server interpretiert. JavaScript-Code wird erst im Browser betrachtet. Daraus folgt, dass der serverseitige Code keinen Zugriff auf JavaScript-Variablen hat. Falls eine Art Variablenaustausch stattfinden soll, kann dieser nur in eine Richtung erfolgen: JavaScript kann auf serverseitige Variablen zugreifen.

Ganz korrekt ist das immer noch nicht. Der JavaScript-Interpreter kann nicht direkt auf serverseitige Variablen zugreifen, aber serverseitige Variablen können JavaScript-Variablen zugewiesen werden.

Betrachten wir zunächst ein Beispiel in PHP. In dieser Sprache werden Variablen durch ein vorangestelltes Dollarzeichen markiert. Unser Ziel ist es nun, auf die Variable $variable von JavaScript aus zuzugreifen. Das geht folgendermaßen:

gp  Zunächst einmal muss die Variable im PHP-Teil deklariert und mit einem Wert belegt werden. PHP-Teile in HTML-Dokumenten werden durch <?php und ?> eingefasst. Im Webbrowser sieht man davon wie gesagt nichts mehr, da diese Bestandteile auf dem Server interpretiert und ausgeführt werden.
gp  Dann muss ein JavaScript-Teil eingebaut werden. In diesem JavaScript-Teil wird eine JavaScript-Variable definiert. Als Wert wird ihr der Wert von $variable zugewiesen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 25.1     Die PHP-Variable wird per JavaScript ausgegeben.

Hier ein exemplarisches Listing:

<?php
   $variable = 'PHP'; //PHP-Variable wird gesetzt
?>
<html>
<head>
<title>Variablentausch</title>
</head>
<body>
Wert der Variablen:
<script type="text/javascript"><!--
var v = "<?php echo $variable; ?>";
document.write(v);
//--></script>
</body>
</html>

Was passiert nun, wenn dieses Skript auf dem Server interpretiert wird? Nun, die <?php...?>-Abschnitte werden interpretiert und sind im Browser nicht mehr sichtbar. Der Variablen $variable wird der Wert "PHP" zugewiesen. Die Anweisung echo $variable; führt dazu, dass PHP ausgegeben wird. Am Ende wird also folgendes HTML-Dokument an den Browser geschickt:

<html>
<head>
<title>Variablentausch</title>
</head>
<body>
Wert der Variablen:
<script language="JavaScript"><!--
var v = "PHP";
document.write(v);
//--></script>
</body>
</html>

Die (JavaScript-)Variable v wird also mit dem Wert "PHP" belegt. Sie sehen jetzt auch, warum in der Datei variable.php das <?php echo $variable; ?> mit Anführungszeichen umgeben worden ist. Wäre das nicht der Fall gewesen, hätte das PHP-Skript folgende HTML-Ausgabe produziert:

var v = PHP;

Dies hätte natürlich einen Syntaxfehler nach sich gezogen.

Dasselbe Beispiel sieht in ASP.NET ganz ähnlich aus. Drei Vorbemerkungen seien angebracht:

gp  ASP-Code wird durch <% und %> eingeschlossen.
gp  (Einzeilige) Kommentare werden durch ' gekennzeichnet (entspricht // in JavaScript).
gp  Variablennamen werden nicht gesondert gekennzeichnet. Allerdings müssen Sie eine Variable vor ihrer Verwendung mit Dim deklarieren (entspricht var in JavaScript).

Damit ist nun folgender Code verständlich:

<%
   Dim variable
   variable = "ASP.NET"  ' ASP.NET-Variable wird gesetzt
%>
<html>
<head>
<title>Variablentausch</title>
</head>
<body>
Wert der Variablen:
<script type="text/javascript"><!--
var v = "<% Response.Write(variable) %>";
document.write(v);
//--></script>
</body>
</html>

Durch Response.Write(Variablenname) wird der Wert der angegebenen Variablen ausgegeben. Obiges Skript führt also zu folgender HTML-Ausgabe:

<html>
<head>
<title>Variablentausch</title>
</head>
<body>
Wert der Variablen:
<script language="JavaScript"><!--
var v = "ASP.NET";
document.write(v);
//--></script>
</body>
</html>

Auch hier gilt wieder: Ohne die Anführungszeichen um das Ausgabekommando würde es zu einer (JavaScript-)Syntaxfehlermeldung kommen.

In ASP.NET gibt es eine Kurzform für die Variablenausgabe: <% =Variablenname %> entspricht <% Response.Write(Variablenname) %>.

Damit haben Sie auch schon das Grundrüstzeug erhalten, um serverseitige und clientseitige Skriptsprachen zusammenarbeiten zu lassen. Im nächsten Abschnitt finden Sie einige Beispiele hierfür.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de