phpbar.de logo

Mailinglisten-Archive

AW: [php] CSS & PHP

AW: [php] CSS & PHP

Andreas M�ller php at universalware.de
Fre Mar 19 14:22:31 CET 2004


Hallo zusammen,
also CSS dynamisch per PHP zu erzeugen habe ich vor langer Zeit einmal bei
mir eingesetzt - und es recht bald wieder abgeschaltet.

Wenn man in dem CSS-Script (also das PHP Script welches das CSS ausspuckt)
nicht darauf achtet sauberer Header (inc. Modified, Cache Instructions etc.)
zu senden dann holt der Browser bei jedem Seitenabruf in dem das CSS
eingebunden ist dieses neu vom Server mit der damit verbundenen
Generierungsarbeit des CSS. In dem Fall k�nnte man das CSS direkt in die
HTML Seite generieren - das w�re dann sogar schlanker denn es k�me mit einem
Request aus, statt im anderen Fall mit zwei.

Au�erdem scheinen manche Browser-Caches "allergisch" auf "?" in URLs zu
reagieren. Dann werden diese Files mal prinzipiell nicht gecacht. Egal was
der Header sagt.

Daher habe ich recht schnell zu einer anderen Technik gewechselt: Ich
erzeuge "statische" CSS Files im Filesystem "on demand" und binde diese dann
wie gewohnt im HTML ein.
Dazu erzeuge ich den Stylesheet Link per PHP in der HTML Datei, statt:

<link rel="sytlsheet" type="text/css"
href="/style.php?ID=5&lk=3&sid=45687128" />

verwende ich also z.B.:

<link rel="sytlsheet" type="text/css" href="<?php echo
GetStyleURL(5,3,45687128); ?>" />

Die Funktion "GetStyleURL" nimmt die Parameter entgegen, schaut intern in
einem Repository nach ob f�r diese Parameterkonfiguration schon ein Datei
existiert und erzeugt diese falls sie nicht existiert. Ergebnis der Funktion
ist die resultierende URL:

<link rel="sytlsheet" type="text/css" href="/style/000000001.css" />

Das ist dann f�r den Browser etwas ganz normales und vor allem auch
cachebar. Der Indianer liefert das File nur noch aus anstatt es �ffters neu
zu berechnen.

Die Verwaltung der erzeugten Files ist jetzt anwendungsabh�ngig. D.h. man
kann sie nach gewisser Zeit l�schen o.�. Wird eine Datei wieder ben�tigt
dann erzeugt sie o.g. Funktion ja sowieso wieder - aber eben nur ein mal :-)

Gru�,
Andreas



php::bar PHP Wiki   -   Listenarchive