Waarom niet gewoon je complete css bij 1e bezoek eruit spugen en dit bij de client laten cachen??? Jouw methode is bijna niet goed te cachen, dus bij bijna elk bezoek moet die css weer over de lijn heen.
Btw geef eens een indicatie van de totale grootte van de css? Want ik denk dat je je druk zit te maken over enkele tientallen bytes. 1x 10Kb downloaden en cachen is beter dan bij 12 paginabezoeken 1Kb css te ontvangen en niets te cachen.
Ik heb nu 2 keuzes:
* De style extern doen, en het css bestand aanroepen met een GET parameter 'page' op die manier krijg je per pagina een aparte css bestand, maar wordt het toch gecached door de browser (toch?).
Niet per pagina, gewoon 1 totaal bestand / 1 extra bestand voor een compleet ander gedeelte waar 90% van de bezoekers niets mee te maken heeft ( admin ). De client cached het totaal bestand en dit wordt voor elke pagina opnieuw gebruikt.
@crisp:
Hoe gaat dat comprimeren van html/css in zijn werk?
Zoeken naar apache deflate, mod_gzip etc.
Even nog een praktijkvoorbeeldje, ik heb een site met redelijk wat verschillende componenten en bijbehorende css files inclusief Comments etc. Ik heb serverside 1 classe die alle verschillende css-bestanden bij elkaar raapt, minified en een versie eraan geeft ( adhv last modified date van alle losse bestanden ), het geeft een expiry header mee tot in 2010, het gzipped het bestand voordat het naar de client wordt verzonden.
Op schijf heb ik 18Kb aan css staan, dit wordt bij een 1e page request omgezet naar een 4Kb download die geldig blijft tot in 2010 of tot de 1e verandering.
Voor js heb ik eenzelfde procedure en daar wordt van 300Kb 1 download van 30Kb gemaakt.
Alle plaatjes krijgen ook een versie mee en een expiry date tot 2010.
Dus bij een 1e pagerequest moet iemand 34Kb extra downloaden voordat hij de pagina ziet, bij elk volgende bezoek / pagerequest hoeft er niets meer aan css / js gedownload te worden tot aan 2010 of tot er iets wijzigt.
Gemiddeld voor mijn website kost een 1e pagerequest 2Mb, 2e en volgende pagerequests zijn nog maar gemiddeld 3Kb ( heb veel, heel veel plaatjes en js, navigatie is ook 90% plaatjes ). Ik verander iets aan de css, bij de volgende pagerequest is er een nieuw versienr en dus een nieuwe download.
En dynamisch, mijn css is bij elke bezoeker verschillend ( het is geen algemeen toegankelijke website ) maar blijft toch bij elke bezoeker gecached tot aan 2010 of tot er 1 wijziging in de css plaatsvind...
Oftewel, ga niet kijken naar bytes, ga kijken naar je bezoekers terugkeerpatroon, doet een gemiddelde bezoeker per week 10 page-requests dan kan je beter gaan kijken naar efficiente caching dan naar het besparen van enkele bytes. Bytes besparing ( op css / js ) is imho alleen zinvol als je alleen maar 1 pagerequest per bezoeker hebt..
Voor wie moet de source leesbaar zijn? Voor iedereen, dan gooi je makkelijk een 20% compressie / downloadtijd weg. Voor jezelf, maak een _get-parameter dat de code niet minified zodat je nog steeds kan debuggen.
> HTML comprimeren met gzip (gzencode +ob_***)
Let er wel op of de browser gzip ondersteunt... Anders krijgt de gebruiker troep.
> Alle css van alle elementen in 1 bestand en comprimeren met gzip
Dit zou ik met een server-side scriptje gaan doen, ik heb liever een duidelijke dir-structuur met 25 css bestandjes dan 1 gigantisch css bestand waar ik alles maar bij elkaar moet zoeken...
[
Voor 11% gewijzigd door
Gomez12 op 10-05-2008 12:24
]