ASP Classic

Seiten mit ASP zusammensetzen

Include vs. Server.Execute

Starre HTML-Seiten haben oftmals die Angewohnheit den Webmaster bei Änderungen ziemlich ins Schwitzen zu bringen, denn diese können sich auf eine große Anzahl einzelner Seiten auswirken, wenn man z.B. auf jeder Seite ein Navigationsmenü angebracht hat und dieses nun ändern möchte. Abhilfe würden in einem solchen Fall z.B. Frames schaffen, die jedoch wiederum andere Nachteile mit sich bringen. So ist es mit Frames nicht möglich ohne Javascript den Inhalt eines Frames über ein Navigationsframe zu steuern.

Die Seiten des alten zerbit.de-Webs enthielten keinerlei Frames oder Javascripte. Jede einzelne wurde über ASP aus mehreren "Modulen" auf dem Server "zusammengebaut". So gabt es einen Header, die Navigationsleiste links, die News-Leiste rechts und die Fußzeile, die jeweils von einer ASP- bzw. HTML-Seite repräsentiert wurden.

Ausgangspunkt ist der Seitenentwurf, der aus einer Tabellenstruktur besteht, die aus 5 Grundzellen besteht. In jeder dieser Zellen steckt eine weitere Tabelle, die den jeweiligen Inhalt enthält.

Steht das gewünschte Layout, wird die Inhaltstabelle der vier Rahmenzellen in separate Dateien ausgelagert, wobei darauf zu achten ist, dass in diesen HTML- oder ASP-Dateien keine HTML-, HEAD- oder BODY-Tags enthalten sind. An die Stelle der Tabellen im Hauptdokument wird eine INCLUDE-Anweisung gestellt, die den Inhalt der Datei während des Zugriffs wieder einsteuert:

<!--#include virtual="/header.asp" //-->

Diese SSI-Anweisung kann entweder mit dem Parameter virtual oder file versehen werden, wobei bei file der Pfad entweder relativ von der aktuellen Datei aus gesehen wird oder eine absolute Pfadangabe enthält (z.B. "c:\inetpub\wwwroot\header.asp"). Bei virtual muss ein virtueller Pfad zur Datei angegeben werden (z.B." /header.asp"). 

Problematisch ist die INCLUDE-Anweisung jedoch, wenn z.B. der anzuzeigende Inhalt auch aus einer externen Datei kommen und einer ASP-Seite als Parameter übergeben werden soll. Hier funktioniert das Prinzip nicht, denn INCLUDE-Anweisungen werden vom Server immer als erstes abgearbeitet, d.h. bevor der Parameter mit Request.QueryString abgerufen werden kann. Daraus ergibt sich, dass bei INCLUDES nicht mit Variablen gearbeitet werden kann.

Abhilfe schafft hier eine ASP-Anweisung:

Server.Execute(strPage)

Diese Anweisung dient normalerweise dazu ein externes Script auszuführen, das Ergebnis anzuzeigen und danach zur aufrufende Seite zurückzukehren. In unserem Fall stellt der komplette Inhalt der einzusteuernden Seite das Ergebnis dar, wobei alle darin enthaltenen Scripte zu Zeitpunkt des Einsteuerns ausgeführt werden.

Die Anweisung akzeptiert allerdings nur Dateien, die auf dem gleichen Webserver liegen und die über virtuelle Pfadangaben erreichbar sind. Absolute Pfade wie c:\inetpub\wwwroot\xyz funktionieren nicht.

kick it on dotnet-kicks.de AddThis 0 wikio-Stimme(n) Trackback-Url...

Verwandte Artikel

Dynamische Navigation mit PHP

48 Kommentare bislang...

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://www.zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

Artikel 3

  • Datum: 23.01.2005
    Kategorie: ASP Classic
    Zugriffe: 2.095
    Kommentare: 48
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei