Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; breadcrumb has a deprecated constructor in /kunden/dciwam.de/webseiten/dciwam/includes/class.breadcrumb.inc.php on line 23
dciwam.de / faq / verschiedenes / dynamische-inhalte-einfuegen

Dynamisch Inhalte in HTML-Dokumente einfügen

Wie kann ich ein div-Element, in meinem Fall eine Navigationsleiste, die auf mehreren Seiten vorkommt, als Datei auslagern?

Hier werden zwei von vielen anderen Möglichkeiten, die in Betracht kommen und machbar sind, kurz erklärt:

Möglichkeit 1

Mit SSI (Server Side Includes):

<!--#include virtual="[Pfad/Dateiname]"-->

Mit dem Kommando include kann eine HTML-Datei als div-Element in die aktuelle Datei eingeschlossen werden. In diesem Fall und je nach Serverkonfiguration muß die Dateierweiterung in .SHTML geändert werden.

Möglichkeit 2

Mit PHP das div-Element einlesen und plazieren:

<?PHP include("[Pfad/Dateiname]"); ?>

Pfad und Dateiname sind frei definierbar.

In diesem Fall und je nach Serverkonfiguration muß der Dateiname in .php geändert werden.

Eine andere Möglichkeit besteht darin, daß man Lokal ein Webserver (z.B. Apache) mit PHP oder SSI installiert. Nachdem die erforderlichen Teile wie Kopf- oder Fußzeile sowie Navigation eingebunden sind und alle installierten Browser ein zufriedenstellendes Ergebnis zeigen, können die Dateien aus einem Browser oder mit einem Tool (z.B. wget) als statische Seiten abgespeichert und per FTP oder Telnet (SSH) hochgeladen werden.

Der große Vorteil eine solche Methode ist, daß zuerst einmal selbst mit 'Grundpaket-Accounts' (Starter-Webspace) keine Probleme gibt und außerdem der Webserver vom ständigen parsen der Dokumente deutlich entlasten wird.

Zusätzlich können auch Proxies und Caches mit diesen Dateien besser arbeiten, da sie ein eindeutiges Datum besitzen.

Beachte:

  1. Um zu verhindern, daß die div-Element immer wieder neu geladen werden, sollte die Cachefähigkeit des Webservers bzw. der Webseite erhöht werden. Sonst sind die Seiten nur scheinbar dynamisch, auch wenn die Komponenten sich nicht ändern.
    Hierzu bietet "Caching Tutorial for Web Authors and Webmasters" unter
    http://www.mnot.net/cacheability/ oder
    http://www.mnot.net/cache_docs/
    insbesondere mit http://www.mnot.net/cache_docs/#IMP-SCRIPT eine ausführliche und gute Anleitung in Englisch an.
  2. Selbstverständlich können mit den o.g. PHP und SSI-Lösungen ebenso andere, für die Webseite wichtige Elemente (Bild- und Textdatei, Datenbank etc.) ausgegliedert werden. Diese Methode gilt nicht speziell für div-Elemente, sondern ist für jeden beliebigen Bestandteil eines HTML-Dokumentes gültig.
  3. Die 'include'-Methode sollte nur bei größeren Webprojekte sowie immer wiederkehrende Elemente angewendet werden. Es ist nicht unbedingt erforderlich den Webserver unnötig mit SSI und PHP zu belasten, wenn man die Seiten auch lokal generieren kann.
Huschiar Madjidi • http://www.netandmore.de

Ich möchte auf Frames verzichten aber eine einheitliche Navigation auf allen Seiten haben. Eine Änderung soll auf allen Seiten wirksam werden.

<!-- ps_include file="Contents" -->
<!-- /ps_include file="Contents" -->

Im Quelltext steht dann der Inhalt der Datei "Contents". Eine Änderung in der Datei "Contents" wirkt sich automatisch auf alle Dateien aus. Includefähige Editoren siehe Linkliste.

Weiterführende Links

Harald Seffers  http://www.webtaxi.de/
Peter Bieling • http://www.media-palette.de/

Zum Seitenanfang

URL: http://dciwam.de | Letzte Änderung: 21.05.2009 | G. Schneider | Kontakt