Der Martin: Inhalt-inkludieren: Wie machen es die Profis?

Beitrag lesen

Hi,

Ich habe eine kleine Webseite (rd. 15 Seiten) erstellt. Die Struktur ist sehr einfach:

  • Header-Bild
  • horizontale Navigation
  • Inhalt

Da das Header-Bild und die Navigation auf jeder Seite identisch sind, habe ich dies in eine .html gepackt und binde diese auf jeder Seite per PHP ein. Desweiteren beinhaltet diese Daten (Meta-Daten, CSS-Styles) die von allen Seiten benötigt wird.

zunächst mal ist es unüblich, Dateien als .html zu benennen, die nur includiert werden, also gar kein vollständiges HTML-Dokument enthalten. Ist aber auch nicht weiter schlimm.

Mir kommt dieser Stil sehr unsauber vor, da sich z.B. die gemeinsam genutzten Meta-Daten in einem <head>-Bereich (der eingebundenen Datei) im <body>-Bereich der eigentlichen Seite befinden.

Dann ist das nicht nur unsauber, sondern ergibt im Endeffekt sogar fehlerhaftes HTML. Denn style- oder meta-Elemente haben im body nichts zu suchen. Wenn du das Konzept so beibehalten willst, dann solltest du die include-Datei in zwei Dateien zerlegen, und eine davon im head, eine im body includen, so wie du es auch selbst schon andeutest:

Die sauberere Variante wäre je eine .html zu erstellen, die nur Meta-Daten beinhaltet und eine die nur das Header-Bild und die Navigation beinhaltet.

Genau. :-)

Wie handhaben die Profis das Problem, sich wiederholende Daten einzubinden?

Eine häufige verwendete Technik ist es, in einer PHP-Datei das HTML-Grundgerüst zu schreiben, also all das, was nachher für alle Seiten gleich bleiben soll. Über URL-Parameter (z.B. ?page=kontakt) teilt man dem PHP-Script mit, welche Seite es bitte erzeugen möge, und das Script erzeugt abhängig davon die wechselnden Informationen wie z.B. title und den eigentlichen Hauptinhalt. Letzteren auch gern per include.
Die etwas unschönen URLs wie /index.php?page=foo kann man dann über die Serverkonfiguration auf bessere, sprechende URLs abbilden (suche im Zweifelsfall nach mod_rewrite).

Da auch regelmäßig neue Seiten hinzukommen, müsste jedesmal die Navigation angepasst werden.

Das wäre weder bei deinem Konzept ein Problem, noch bei der von mir beschriebenen Variante.

Wie sehr leidet die Performance, wenn ich pro Seite mehrere Daten inkludieren muss?

Vermutlich wenig. Wir reden hier über gerade mal zwei Dateien, die includiert werden. Und wenn die häufiger benötigt werden, wird der Server (dessen Betriebssystem) diese Dateien früher oder später auch in seinem Cache vorhalten. Das fällt dann vermutlich in die Größenordnung "nicht messbar".

So long,
 Martin

PS: Warum hast du die Tags browser und datenbank gewählt?