Veel CSS, wat is handig

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Tobias Tobias

Tobias Tobias

29/07/2011 09:31:08
Quote Anchor link
Hallo,

ik heb inmiddels al veel css in mijn site zitten. Zo heeft het menu alleen al ongeveer 250 regels code.

Nu vroeg ik me af: wat is de beste manier om de boel overzichtelijk te houden?

Ik heb nu de css opgedeeld in meerdere bestanden, bv stijl_menu.css, stijl_head.css etc.
Ik heb alleen geen idee wat het aanroepen van meerdere (in mijn geval inmiddels 10)kleine .css bestanden aan laadtijd kost tov 1 groot bestand.

Nadeel van 1 bestand is de hoeveelheid scrolltijd als je iets wilt aanpassen.
 
PHP hulp

PHP hulp

24/12/2024 02:46:19
 
Ozzie PHP

Ozzie PHP

29/07/2011 09:38:18
Quote Anchor link
Alle css die je ALTIJD nodig hebt (dus in jouw geval stijl_menu.css en stijl_head.css) in 1 bestand plaatsen. Hoe minder requests, des te sneller je website. (Ditzelfde geldt ook voor het aanroepen van javascript bestanden.)

Eventueel zou je met losse css bestanden kunnen werken en deze via een script aan elkaar kunnen plakken. In je code zeg je dan, op de homepage heb ik main.css en form.css nodig (dit is maar een voorbeeldje) en jouw code genereert dan 1 bestand form_main.css. Als vervolgens een andere bezoeker op je site komt, dan ziet de code... hé ik moet main.css en form.css aanroepen maar dat bestand (form_main.css) bestaat al en hoef ik dus niet opnieuw te genereren.
Gewijzigd op 29/07/2011 09:39:20 door Ozzie PHP
 
Chris -

Chris -

29/07/2011 10:21:00
Quote Anchor link
Heel simpel. Voor het bewerken van de stylesheets maak je meerdere bestanden, zolang deze een logische naam hebben. Daarna maak je een PHP-script die vervolgens alle stylesheets inleest, stript, comprimeert en dan vervolgens (gecached) naar de browser verstuurt.
 
Ozzie PHP

Ozzie PHP

29/07/2011 10:22:53
Quote Anchor link
Heb je hier toevallig een werkend code-voorbeeld van Chris :)
Met name naar dat strippen, comprimeren en gecached naar de browser sturen ben ik ook wel benieuwd eigenlijk!
 
Tobias Tobias

Tobias Tobias

29/07/2011 10:31:21
Quote Anchor link
@Chris
Ik zou inderdaad niet weten hoe ik dat moet doen
 
Elwin - Fratsloos

Elwin - Fratsloos

29/07/2011 11:26:56
Quote Anchor link
Strippen zou je kunnen doen met zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function compress($buffer) {
    /* remove comments */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* remove tabs, spaces, newlines, etc. */
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
}

?>
 
Ozzie PHP

Ozzie PHP

29/07/2011 11:31:22
Quote Anchor link
ah oke... thanks... dan blijft het comprimeren en gecached naar de browser sturen nog over...
 
Chris -

Chris -

29/07/2011 11:43:03
Quote Anchor link
CSS opslaan in een map.
CSS aanmaakdatum opslaan in database (oid).
In je applicatie verwijzen naar style.php?v=123456789 (time() van de aanmaakdatum)
In style.php haal je de versie op die word gevraagd, en stuur je headers mee dat ze pas over een jaar niet meer geldig zijn.
 
Ozzie PHP

Ozzie PHP

29/07/2011 12:12:00
Quote Anchor link
oke, thanks..
 
Tobias Tobias

Tobias Tobias

29/07/2011 12:23:09
Quote Anchor link
Maar kost die alles bij elkaar niet meer tijd dan gewoon de CSS laden?
Of zit de tijdwinast in het feit dat het maar 1 keer gebeurt
 
Chris -

Chris -

29/07/2011 12:31:02
Quote Anchor link
Het maken van dat bestand duurt, tenzij je een hele slechte server hebt, minder dan 0.1 seconde.

De tijdwinst voor de gebruiker zit hem in de volgende feiten:
1. Er is maar 1 bestand ipv (bijvoorbeeld) 5 stylesheets
- Dit betekend dat er 4 minder requests zijn
2. Het bestand is verkleind
- Scheelt weer wat KB
3. Het bestand is te cachen
- Scheelt weer want dan hoeft het bestand niet iedere keer te worden opgehaald, maar uit zijn eigen cache gehaald!
 
Ozzie PHP

Ozzie PHP

29/07/2011 12:53:55
Quote Anchor link
Chris Horeweg op 29/07/2011 12:31:02:
Het maken van dat bestand duurt, tenzij je een hele slechte server hebt, minder dan 0.1 seconde.

Je kunt dit bestand toch ook eenmalig maken?
 
Chris -

Chris -

29/07/2011 13:02:07
Quote Anchor link
Dat doet die ook Ozzie, alleen de eerste keer dat je hem maakt. Wanneer je via een CMS bijvoorbeeld de stylesheets update, geef je in de database een nieuwe timestamp aan. Die timestamp zet die bij het ophalen van de stylesheet. Het style.php bestand (of iets) ziet die timestamp, kijkt of er een bestand is aangemaakt met die timestamp en als dat niet zo is maakt hij deze aan. De keren daarna haalt hij gewoon de oude op :)
 
Ozzie PHP

Ozzie PHP

29/07/2011 13:03:51
Quote Anchor link
stylesheet uploaden via cms???? huh...?
volgns mij moet dat handiger kunnen aan de hand van de last-modified datum ofzo... maar goed... da's voor later :)
 
Ozzie PHP

Ozzie PHP

01/08/2011 02:27:51
Quote Anchor link
Wat is eigenlijk slimmer?

Manier 1:
- controleer voordat je je view toont of het css bestand bestaat, zo nee genereer het bestand en plaats het in de (publieke) css map
- aangezien het bestand bestaat, kun je het gewoon aanroepen als normaal css bestand, bijvoorbeeld: <link rel="stylesheet" type="text/css" href="/css/main-form.css" />

of

Manier 2:
- roep het css bestand aan via een php file, bijvoorbeeld: <link rel="stylesheet" type="text/css" href="/css/css.php?file=main-form" />
- het css.php bestand kijkt of dit bestand bestaat. Ja, dan wordt de output naar de browser gestuurd, nee dan wordt het bestand gegenereerd en vervolgens naar de browser gestuurd.

Correct me if I'm wrong:
Manier 1 heeft in tegenstelling tot manier 2 volgens mij als voordeel dat het "echte" fysieke css bestanden zijn waardoor ze door de browser goed zullen worden gecached. Manier 2 heeft weer als voordeel dat je de data gezipt kunt oversturen naar de browser.

Welke manier verdient de voorkeur... of is er wellicht nog een betere manier?
Gewijzigd op 01/08/2011 02:30:37 door Ozzie PHP
 
Pim -

Pim -

01/08/2011 03:04:28
Quote Anchor link
Direct aanvragen is sowieso sneller. Via je apache config kan je dan gzip en de juiste cache-control headers instellen.
 
Ozzie PHP

Ozzie PHP

01/08/2011 03:07:15
Quote Anchor link
Direct aanvragen bedoel je mee manier 1 of manier 2?

(omdat ik op shared hosting werk kan ik niet zelf de server configureren. Daarom zou het handig zijn als ik dit in de code kan doen, maar volgens mij kan dat allen met manier 2?)
 
The Force

The Force

01/08/2011 04:09:52
Quote Anchor link
http://rakaz.nl/code/combine

Gebruik hem naar alle tevredenheid.
 
Pim -

Pim -

01/08/2011 05:35:52
Quote Anchor link
Ik heb het over manier 1, je moet dan dus cachen naar een gewoon bestand. Apache configureren kan ook met een .htaccess bestand.
 
Ozzie PHP

Ozzie PHP

01/08/2011 10:57:46
Quote Anchor link
Pim - op 01/08/2011 05:35:52:
Ik heb het over manier 1, je moet dan dus cachen naar een gewoon bestand. Apache configureren kan ook met een .htaccess bestand.

Ik wist niet dat je die zip instellingen in je .htaccess bestand kon zetten. Ik dacht eigenlijk dat dat niet kon. Heb je hier misschien een voorbeeldje van? Zou ik erg fijn vinden!
 
The Force

The Force

01/08/2011 11:35:39
Quote Anchor link
Pim - op 01/08/2011 03:04:28:
Direct aanvragen is sowieso sneller. Via je apache config kan je dan gzip en de juiste cache-control headers instellen.

Of je het nu direct aanvraagt of dat je het een script laat genereren merk je nauwelijks. Al helemaal niet als het resultaat gecached wordt. Als het een een aantal ms zou schelen zou me dat verbazen. Dat is niets vergeleken met de tijdswinst die je kan behalen door al je bestanden te comprimeren, gzippen en samen te voegen. Zie de link die ik hierboven heb gepost. 1,5 seconden afhalen van 3,5 seconden laadtijd, dat zijn cijfers die er toe doen.

Ozzie PHP op 01/08/2011 10:57:46:
Ik wist niet dat je die zip instellingen in je .htaccess bestand kon zetten. Ik dacht eigenlijk dat dat niet kon. Heb je hier misschien een voorbeeldje van? Zou ik erg fijn vinden!

http://www.samaxes.com/2008/04/htaccess-gzip-and-cache-your-site-for-faster-loading-and-bandwidth-saving/
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.