sinnvoll, alle Unterseiten in der Index-Seite zu laden?

Fabian Frank

Erfahrenes Mitglied
Hallo,

arbeite gerade wieder mal an meiner Homepage. Diesmal mit neuen Grundgedanken, unter anderem eben Wartung der Website online. Das will ich durch ein eigenes CMS, basiert auf MySQL schaffen; daran gehts jedoch erst später.
Meine Frage momentan ist, macht es eigentlich sinn, wenn ich z.B. Inhalt einer Homepage in einer Datenbank gespeichert hab, diesen Inhalt durch einen Platzhalter in genau einer Seite (nämlich im Content-Div) anzeigen zu lassen? Die Unterseiten werden demnach nur so aufgerufen: http://www.###.de/index.php?page=Unterseite1/Unterseite2 etc...

Sprich, der Wert der Page-Variablen gibt der Seite das Schlüsselwort für die Auswahl des Contents, ungefähr so: Bei index.php?page=home

"Inhalt laden aus Zeile mit page=home"

Das würde doch theoretisch nach diesem Prinzip durch die Ersparnis der wiederholungen von Unterseiten (sprich Header, Footer gleich) Quelltext ersparen. Und wieso auch immer, mittlerweile scheint das ja sehr angesehen zu sein in Sachen Barrierefreiheit...

Vielen Dank,

Fabi

Als kleines Beispiel soll das Woltlab Burning Board 3 dienen, bzw dessen Online-Demo. Dort werden auch alle Pages in der Indexseite aufgerufen...
 
Zuletzt bearbeitet:
konkreter gesagt: Ist es sinnvoll, daten für eine Homepage aus einer MySQL Datenbank auszulesen, oder sollte ich das cms so strukturieren, dass die Daten z.B. in HTML-Dateien gespeichert werden ?
 
Zuletzt bearbeitet:
Hi Fabian,

der Aufbau sieht in der Regel so aus, dass Du Deine Seiten in Typen unterteilst (z.B. "news") und für diese Typen sogenannte Templates erstellst (das HTML-Gerüst des Seitentyps mit Platzhaltern für die Daten). In der Datenbank stehen dann nur die reinen Daten, die Dein CMS z.B. mittels einer Templateengine in dieser Vorlage einsetzt und das komplette HTML-Dokument ausliefert.

LG
 
konkreter gesagt: Ist es sinnvoll, daten für eine Homepage aus einer MySQL Datenbank auszulesen, oder sollte ich das cms so strukturieren, dass die Daten z.B. in HTML-Dateien gespeichert werden ?

Was sinnvoll ist, dürfte davon abhängen, wie "dynamisch" die Homepage sein wird.
Ändern sich die Inhalte eher selten, macht es durchaus Sinn, die Seiten reel auf dem Server abzuspeichern, das erspart selbigem den Aufwand, bei jedem Aufruf alles neu verarbeiten zu müsse, der Performance-Schub wird enorm sein :)

Mit eher selten meine ich, dass sie sich nicht minütlich ändern, wie bspw. in einem Forum.
 
alles klar! Danke, dann werd ich daten wohl "reel" speichern.

Zum 2. Punkt: Macht es nun sinn, die daten alle aus der Index-Seite heraus zu laden, oder sollten für jeden "Seitentyp" eine eigene Seite, bzw. ein HTML-Template erstellt werden? Ich mein, die sind bei allen Seiten identisch, wieso also nicht gleich aus der Index seite heraus und Quelltext sparen?
 
Könnte vorkommen, dass du irgendwann nicht mehr durchsiehst. Deshalb ist es meistens praktischer alles in mehreren Dateien zu speichern (die kannst du ja, wenn du unbedingt willst, in eine index.php mit include() oder require() einladen)
 
okay. Gut, aber diese Seite wird sich relativ in Grenzen halten, was den Code betrifft.
Aber was ist dann der eigentliche Sinn dieser Methode, wie z.B. beim Burning Board 3 verwendet ?
 
Hi,

Zum 2. Punkt: Macht es nun sinn, die daten alle aus der Index-Seite heraus zu laden, oder sollten für jeden "Seitentyp" eine eigene Seite, bzw. ein HTML-Template erstellt werden? Ich mein, die sind bei allen Seiten identisch, wieso also nicht gleich aus der Index seite heraus und Quelltext sparen?

Heißt das, Du hast nur einen einzigen Seitentyp, also sämtliche Seiten haben den gleichen Aufbau? Dann bräuchtest Du natürlich auch nur ein einziges Template.

Sonst regelt man das, wie bereits erwähnt, über Includes. Du könntest in der index.php z.B. Header, Footer und Navigation generieren und den Content-Bereich je nach Seite per include() einbinden. Deine Templates beständen dann nicht aus kompletten HTML-Dokumenten, sondern z.B. nur aus einem Div.

LG
 
Der Vorteil, die Anfragen über ein sogenanntes Bootstrap File an die entsprechenden Controller weiterzugeben besteht in der Wartbarkeit. Man muss (wenn überhaupt) nur noch in der entsprechenden Routing-Tabelle weitere Datensätze hinzufügen oder bestehende bearbeiten.

Der Nachteil ist, dass meist sogar völlig statische Inhalte dynamisch eingebunden werden. Das bringt dann auch einen weiteren Nachteil: Ohne Rewrites und dergleichen verstößt es eigentlich gegen den angestrebten Sinn einer URL - Dokumente und Daten sollten zu jedem Zeitpunkt unter ein und derselben URL erreichbar sein. URL-Parameter stehen ja nun nicht unbedingt für Statik... ;)

Deine Überlegung von wegen mit oder ohne Datenbank solltest du nicht auf die Technik beschränken, sondern vielmehr überlegen, was dir wichtig ist. Dynamisch eingebundene, partielle HTML-Daten sind leicht zu integrieren. Aber das WWW möchte in Richtung semantisches Web gehen, und es ist nicht festgelegt, ob HTML auch in Zukunft Mittel zum Zweck bleibt. Viel interessanter (wenn auch nicht immer sinnvoll) fände ich es beispielsweise den Text und zugehörige Komponenten mit semantischen Kennzeichnungen in irgendeiner Form zu speichern (ob nun Datenbank, typisierte Datei oder was auch immer ist dabei dir überlassen), und erst zum Zeitpunkt der Ausgabe in ein Zielformat (zB HTML) umzusetzen.
Praktischerweise bieten Datenbanken mengenorientierte Operationen an, so dass du beispielsweise entsprechende Umsetzungen leicht auf sämtliche Datensätze anwenden kannst. Die Negativaspekte bei der Verwendung einer Datenbank sind für dich wahrscheinlich nicht allzu relevant, weshalb es durchaus eine gute Wahl darstellen kann. Andererseits sind reelle Daten wesentlich weniger umständlich zu bearbeiten als ein Datensatz in der Datenbank.
 
hm okay, überzeugt mich immermehr, das mit unterseiten zu lösen, ohne bootstrap, und ohne mysql.

Jetzt steh ich nur vor einem Problem. Ich hab auch eine Newssite, deshalb sollte ich fast mysql verwenden, habe so etwas (löschen, erstellen, bearbeiten etc. von einzelnen newseinträgen) noch nie ohne Db nur mit txt Files gemacht.
 

Neue Beiträge

Zurück