Hi!
mir ist schon klar das ich mit Frames und PHP zwei Sachen zusammenwürfel die gar keinen zusammenhang haben.
Das ist ja schonmal was ;-)
Aber ich habe die letzten Seiten die ich erstellt habe nicht mit Frames gemacht, sondern immer nur ein PHP-Dokument benutzt, in das ich verschiedene andere PHP-Dateien per "include" eingebunden habe.
Also z.B. die Navigationsleiste, oder den Inhalt.Meine Frage ist nun, ob diese Technik von der Performance einen großen Nachteil gegenüber Frames hat oder nicht. Klar kann ich mir vorstellen das der Quelltext durch PHP geparst werden muß, aber wieviel Zeit kostet das ?
Klar kostet das, das hängt allerdings von sehr vielen Faktoren ab, ich habe kürzlich gelesen dass es 2-10 mal langsamer ist mit PHP gegenüber HTML beim Apache (und das ist ein vergleichweise langsamer Webserver für statische Inhalte). Vor allem bei einfachen Hostingpaketen wird das extrem sein, da hier wenig optimiert wird/werden kann.
Oder gibt es vielleicht eine andere Möglichkeit Webseiten zu gestalten, ohne das in jeder Datei derselbe Code vorkommt.
Es gibt verschiedene Möglichkeiten. Das Zusammensetzen ist schon der richtige Ansatz, es ist nur fraglich ob es so effektiv ist, dieses Zusammensetzen bei jedem laden einer Seite erneut durchführen zu lassen. Dass sowas ineffizient ist liegt auf der Hand. Unter Performance-Gesichtspunkten ist die Lösung mit Frames in HTML sicher nicht die Schlechteste, aber aus diversen anderen Gründen nicht empfehlenswert (Suche mal im Archiv nach "Frames Seitengestaltung").
Das Zusammensetzen der HTML-Seite kann auf verschiedenen Ebenen stattfinden, angefangen mit "Vorlagen" in HTML-Editoren wie Dreamweaver, über einfache eigene Scripte zum erstellen der HTML-Seiten aus den verschiedenen Komponenten, über HTML-Caches, die die Ausgabe der PHP-Scripte(also den vollst. HTML-Code) für eine bestimmte Zeit cachen (siehe PEAR[1]) bis hin zu Template-Lösungen wie Smarty[2], wo Du z.B. Header und Footer in alle Templates einbinden kannst, und z.B. bei Smarty kannst Du daraus zum einen automatisiert PHP-Code erzeugen(der gecached wird), so dass die Templates nur bei Änderungen geparst werden (was Dich alerdings nicht wirklich weit nach vorne bringt), aber es gibt auch hier die Möglichkeit die HTML-Ausgabe der Templates zu cachen.
Aber bedenke dass es viele Dinge gibt die erheblich größeren Einfluss auf die Ladezeit Deiner Seiten haben, das wären z.B. der sinnvolle(sparsame) Umgang mit Bildern, und die entsprechend gut komprimiert, dazu Caching-Header des Webservers, und vor allem auch die gzip-komprimierte Auslieferung der HTML-Inhalte. Gerade bei Nicht-Breitband-Verbindungen fällt sowas erheblich mehr ins Gewicht als ob Du jetzt reines HTML, PHP oder SSI... einsetzt.
Also, in welcher Technik seht ihr klare Vorteile bzw. wie macht ihr Webseiten flexibel ?
Am flexibelsten sind sicherlich die Template-Lösungen, aber auch am komplexesten.
Grüße
Andreas
[1] http://pear.php.net/package/Cache
[2] http://smarty.php.net/