php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.05.2011, 02:04  
Neuer Benutzer
 
Registriert seit: 13.08.2006
Beiträge: 21
Exon
Standard CSS Übermittlung für optimale Ladezeiten ?

Hallo zusammen,

ich bin zur Zeit am überlegen wie ich unser internes Framework/CMS dazu bringe optimale Ladezeiten zu bringen. Aktuell bin ich bei dem Thema CSS und die Art und Weise wie es eingebunden wird.

Soweit ich bis jetzt gesehen habe gibt es einige sinnvolle Möglichkeiten sauber CSS zu übermitteln:

1) im Normalfall über externe CSS Files

- Ein Nachteil ist bei umfangreicheren Webseiten das man seine Dateien sehr weit splitten muss um nicht überflüssiges CSS zu laden.

Als Beispiel eine Haupt-CSS und 2 (bis x) andere CSS Files für verschiedene einzelne Bereiche.

Der Browser sendet also insgesamt 3 Requests an den Server, lädt die Dateien und verarbeitet diese.

- Der Vorteil ist die Ordnung beim verwalten. Auf die Ordnung könnte ich verzichten wenns um das letzte Quentchen Leistung geht.

Weiter werden soweit richtig eingestellt alle CSS Files gecacht und brauchen nicht dauernd abgerufen zu werden.



2) Soweit die Standard Vorgehensweise, ich bin nun durch Google Pagespeed darauf gekommen dynamisch CSS per PHP zu "sammeln" und in den Head einzufügen. Also nicht als externe Datei sondern als direkte Styledefinitionen.

Die Daten die IMMER ebenötigt werden, würde ich per festem dateipfad als normale einzelne externe Datei auslagern.

Die dynamische CSS-Integration hätte den Vorteil das ich wirklich genau nur die Style laden könnte die brauche ohne etliche Browserrequests zu generieren. Der gedankliche Hintergrund ist der, dass individuelle CSS Parts sowieso nur von einzelnen Seiten benötigt werden und sich daher ein Cachen nicht lohnt.


Soweit zum Thema. Mein Anliegen ist nun folgendes;
Ich weis nicht ob sich das überhaupt bemerkbar macht oder ob ich mir ein Gedankenkonstrukt zusammenspinne das am Ende Aufwand bedeutet und alles komplizierter macht.

Hat jemand Erfahrungen die er vielleicht posten kann ? Oder sogar ein paar Benchmarks/Statistiken ? Seht Ihr grundsätzliche Fehler in der zweiten Version oder habt ihr Verbesserungsvorschläge ?

Danke fürs lesen.
Exon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.05.2011, 02:27  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wirklich spüren wirst du wahrscheinlich keinen Unterschied. Ich denke am besten ist es wenn du deine CSS Dateien wie auch jetzt schon gesplittet hast und so deutlich angenehmer entwickeln kannst. Wenn du dann das Projekt auf den Produktionsserver schiebst kannst du alle CSS Dateien durch einen Minifier laufen lassen, der packt alle CSS Dateien zu einer zusammen und minimiert noch die Dateigröße (z.b. entfernt Kommentare, Leerzeilen/Zeichen und sonstige unnötigen Dinge). Somit hast du am Ende nur eine File die auch noch "relativ" klein ist, der Browser lädt diese einmal und danach liegt sie im Cache und es wird gar kein CSS mehr geladen.

Bei der Methode das der CSS Code IM HTML steht hast du eben das Problem das du mehr Datenübertragen musst (dauert länger) und das bei JEDEM Request, denn diese CSS Angaben kann der Browser eben nicht cachen.
Flor1an ist offline   Mit Zitat antworten
Alt 10.05.2011, 02:43  
Neuer Benutzer
 
Registriert seit: 13.08.2006
Beiträge: 21
Exon
Standard

Danke für deine Meinung Flor1an.

Ich schreibe vielleicht noch etwas mehr zum Umfeld:

- Css Dateien sind aktuell minimiert (semantisch, einzeilig, spaces entfernt, gzipped)

- HTML ist möglichst gekürzt (semantisch, unnötige spaces entfernt, gzipped)

- Cache ist per htacces auf eine Woche ingestellt (html und css). Es existieren keine dynamische Inhalte oder sich ändernde Inhalte. Sobald eine unterseite hinzugefügt wird ändert sie sich im Normalfall nicht mehr.


Bei dem "individuellen" CSS ist teilweise sich wiederholender Inhalt dabei, aber keiner der überall benötigt wird.

Ich denke der Knackpunkt wird sein:
4(oder mehr je nach projekt/unterbereich) Requests mit ca 10-20% ungenutztem Overhead aber voll gecacht

Oder

1 Request, kein CSS Overhead, dafür nur individuell gecacht bei genau der URL bei der er aufgerufen wird.

Entschuldigt falls die Frage bei ein paar ms unterschied spitzfindig wirkt, möchte nur alles was geht rausholen.

Das Framework wird bei fast allen unseren Umsetzungen für Kunden verwendet, und wenn ich hier einmal ein top lösung gefunden habe kann ich beruhigt auch in diesem Bereich "Usability" anpreisen.
Exon ist offline   Mit Zitat antworten
Alt 10.05.2011, 03:08  
Neuer Benutzer
 
Registriert seit: 13.08.2006
Beiträge: 21
Exon
Standard

Eine frage fällt mir dazu auch noch ein.

Wie verhält es sich mit gecachten Dateien, wird trotzdem ein Request an den Server gesendet um die aktualität/Dauer des Cache zu überprüfen ?

Oder wird sobald die URL browserintern bekannt und als gecached markiert ist direkt der Content der Datei übernommen ?

Laut Frebug wird aktuell trotzdem ein request durchgeführt, bin mir aber nicht sicher ob das zu debugging zwecken angezeigt wird.
Exon ist offline   Mit Zitat antworten
Alt 10.05.2011, 03:43  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Exon Beitrag anzeigen
Wie verhält es sich mit gecachten Dateien, wird trotzdem ein Request an den Server gesendet um die aktualität/Dauer des Cache zu überprüfen ?
Das kommt in erster Linie darauf an, welche Angaben zum gewünschten Caching-Verhalten du machst.

Wenn du den Server einen Last-Modified-Header mitsenden lässt, dann ist genau das das definierte Verhalten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 10.05.2011, 11:25  
Neuer Benutzer
 
Registriert seit: 13.08.2006
Beiträge: 21
Exon
Standard

Hallo ChrisB, danke für den Hinweis.

Du hast vllkommen Recht: Aktuell wird für alle Files über

Header set Cache-Control "max-age=604800, proxy-revalidate"

der Gültigkeitszeitraum für Dateien auf eine Woche gesetzt. So wie ich das jetzt verstehe überprüft der Browser bei jedem Request das interne Dateialter und gleicht das mit dem höchstmöglichen erlaubten Datum - das vom Server vorgegeben wird ab.

Bei einzelnen Dateeien könnte ich mir nun vorstellen, das Sie nicht aktualisiert werden müssen, bzw keine dauernder Abgleich nötig ist -> zB. Das Favicon.


Gibt es auch eine Möglichkeit Dateien - ohne einen Request zum Server zu Senden - direkt aus dem Cache zu laden ?

Ich habe einige Tests mit Etags und dem LAst Modified Header gemacht aber ich blicke da noch nicht durch.
Exon ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Übermittlung klappt nicht PHPcreator PHP Tipps 2010 11 29.10.2010 17:37
Übermittlung von Sonderzeichen schlägt fehlt zerofs2001 PHP Tipps 2010 3 05.10.2010 14:46
[Erledigt] Optimale PC-Konfiguration Manko10 Off-Topic Diskussionen 102 04.03.2010 20:59
Allgemeine Frage zu Ladezeiten / PHP Versionen 22hase PHP Tipps 2010 42 26.01.2010 15:49
[Erledigt] Probleme bei der übermittlung der Suche Charon PHP Tipps 2009 5 29.12.2009 12:10
[Erledigt] PHP Flash MySql Punkte übermittlung Rilana PHP Tipps 2009 25 06.01.2009 20:08
Lange Ladezeiten beim Aufruf von PHP-Dateien Benny 800 PHP Tipps 2008 3 27.05.2008 12:05
Session übermittlung über URL havok PHP Tipps 2005-2 9 14.10.2005 08:24
Verbindungsaufbau via https und übermittlung via post reques MortakArtos PHP Tipps 2005-2 1 04.10.2005 08:03
Suche optimale Lösung! Beitragsarchiv 5 03.08.2005 14:28
lange Ladezeiten durch "include"? PHP Tipps 2005 2 16.03.2005 22:44
[Erledigt] Button übermittlung in Datenbank PHP Tipps 2004-2 10 13.12.2004 08:39
Übermittlung von HTTP REFERRER feststellen PHP Tipps 2004-2 14 08.12.2004 18:05
Sicherheit bei der Übermittlung der Daten eines Formulars d-jango PHP-Fortgeschrittene 5 17.09.2004 14:27
Ist Phase 5 der optimale PHP Editor (freeware?) PHP Tipps 2004 1 29.07.2004 09:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
header set cache-control \max-age=604800, proxy-revalidate\, css einzelner bereich laden, php lange ladezeit include, css request dauern, \css nicht cachen, php optimale ladezeit, off line cache firefox debug frebug, php daten ohne ladezeit, dynamische css cachen, php ladezeit fremde seite, header set cache-control \max-age=604800, proxy-revalidate\ php, pagespeed css kelin inline einfügen, dynamische css cache validieren, minify kein cached css nicht, css laden wenn eine bestimmte url aufgerufen wird, css dynamisch laden pagespeed, css intern oder extern vor und nachteile cache

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum