zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Frage zum Buch Little boxes

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 26.10.2008, 13:54
Benutzerbild von Curtains
(Schlafen||Programmieren)
XHTMLforum-Mitglied
 
Registriert seit: 27.08.2008
Beiträge: 198
Curtains befindet sich auf einem aufstrebenden Ast
Standard

Eventuell könnte man (statische) CSS-Dateien auch mit einem CSS-Minifier komprimieren lassen. Dieser entfernt nicht nur Whitespaces, sondern kombiniert Definitionen, die mehrmals vorkommen.
Dies werde ich bei Gelegenheit mal austesten.

Am Schluss muss wohl bei jeder Anwendung die goldene Mitte zwischen Performance und Skalierbarkeit gefunden werden.
Meine (alte) Applikation besitzt einen generischen Formulargenerator, der die gewünschten Formular-Komponenten (Textfelder, Dropdowns, Datengitter, ...) dynamisch zusammenstellt. Jede Komponente hat ihr eigenes Stylesheet. Gewisse komplexere Komponenten haben sogar eine Sammlung von möglichen Formatierungen, die für den User frei wählbar ist.
Der Formulargenerator fügt alle Teile zusammen, und es werden unter Umständen bis zu 40 einzelne CSS-Dateien auf der Webseite eingebunden.
Ich könnte jetzt natürlich jede erdenkliche Kombination als statische CSS-Datei hinterlegen, und das Programm müsste zur Laufzeit einfach die richtige Datei herauspicken.
Aber sobald ich (kleinere) Änderungen am CSS vornehme, müssten alle Dateien neu generiert werden.
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 26.10.2008, 14:03
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Servus Curtains,

da bietet sich aber an, die zu einem CSS zusammenzukopieren. So ähnlich mache
ich das mit den vielen JS-ten die zu den Elementen gehören (allerdings ins HTML
eingebettet).

In etwa so:

Du erstellt das HTML und jedes einzubindende Modul hinterlegt sein CSS in einer
Liste. Wenn das HTML fertig ist, wird aus dieser Liste das CSS erstellt und dann,
zusammen mit der HTML-Datei, auf den Weg geschickt. Ergebnis: 2 HTTPs statt
41.

Ob man erst das komplette HTML erstellt oder das direkt auf stdout abschickt ist
von der Laufzeit her egal (zumindest in Relation zu Übertragungszeit).
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 26.10.2008, 16:07
Benutzerbild von Curtains
(Schlafen||Programmieren)
XHTMLforum-Mitglied
 
Registriert seit: 27.08.2008
Beiträge: 198
Curtains befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Du erstellt das HTML und jedes einzubindende Modul hinterlegt sein CSS in einer
Liste. Wenn das HTML fertig ist, wird aus dieser Liste das CSS erstellt und dann,
zusammen mit der HTML-Datei, auf den Weg geschickt. Ergebnis: 2 HTTPs statt
41.
Ja, ich denke das werde ich genau so in Zukunft machen. Die einzelnen CSS-Blöcke könnten vielleicht sogar in einer DB abgelegt sein. Dann würde eine einzige Query genügen, um das komplette CSS zusammenzustellen.
Mit Zitat antworten
  #24 (permalink)  
Alt 26.10.2008, 19:27
Benutzerbild von heiko_rs
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 18.09.2005
Ort: Berlin
Beiträge: 9.848
heiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Curtains Beitrag anzeigen
Möglicherweise bezieht sich Yahoo aber nicht auf diesen FOUC-Effekt, sondern auf ein allgemeines Verzögern (weisse Fläche) des Inhalts.
Ganz sicher nicht - wenn man den FOUC-Bug beseitigt hat, ist der IE per import genauso schnell wie per link (warum sollte es auch anders sein). Mit FOUC dagegen entsteht tatsächlich der Eindruck, das CSS würde erst eingebunden, nachdem das HTML bereits nahezu komplett gelesen wurde.

Zitat:
Zitat von mantiz Beitrag anzeigen
dass ich (momentan) nur noch 1-3 CSS-Dateien verwende. Screen, falls nötig Screen-IE und evtl. Print.
Mache ich auch so, d.h. CSS soweit zusammenfassen wie möglich, und mehr Dateien als die 3 genannten sind dann i.d.R. auch nicht mehr nötig. Außerdem: Auch innerhalb einer CSS-Datei lassen sich die einzelnen Bereiche sehr gut trennen - ich habe immer verschiedene Blöcke, getrennt durch eine Kommentar-Überschrift.

Zitat:
Zitat von mantiz Beitrag anzeigen
Auch wenn die CSS-Dateien gecached werden, muss zwischendurch mal abgefragt werden, ob die Dateien im Cache aktuell sind, was ebenfalls einen HTTP-Request auslöst.
Dagegen ist übrigens ein Expires-Header sehr hilfreich: Ich nehme i.d.R. eine Stunde ab Aufruf, dann ist erstmal Ruhe. Eine Stunde reicht auch in jedem Falle für eine Sitzung, und kommt der Besucher dann einige Stunden später wieder, fragt sein Browser alle Dateien einmal an, überprüft sie auf Veränderung, bekommt 304 und lädt sie dann wieder aus dem Cache (und bekommt dabei eine neue Expires-Zeit, nämlich wieder eine Stunde).

Den erneuten Vergleich finde ich dabei extrem wichtig und forciere ihn durch ein zusätzliches "must-revalidate", denn vor allem der IE verhält sich zeitweilig ziemlich übel bei Cachen: Ich habe es schon mehrfach erlebt, dass ein Kunde CSS-Änderungen auf seiner Seite (ohne jegliches Expires etc.) trotz mehrfachen Aktualisierens nicht zu sehen bekam, sondern erst nach Strg + F5 (d.h. echter Reload vom Server, ohne Browser-Cache).

Sogar wenn der Rechner zwischenzeitlich heruntergefahren war, holt der IE gerne mal CSS-Dateien vorm Vortag ungeprüft aus dem Cache, und das geht ja nun wirklich gar nicht, daher ist ein hartes Vorgehen dagegen gefragt

[/ot]
__________________
Wer keinen Link auf seine problembehaftete Seite posten kann, weil diese noch nicht online ist: Testcase bauen, online stellen, Link posten.
Internet-Grundregel: Unbekannte Begriffe googeln! (Erspart 99% aller Nachfragen.)

Geändert von heiko_rs (26.10.2008 um 19:30 Uhr)
Mit Zitat antworten
  #25 (permalink)  
Alt 26.10.2008, 19:57
Benutzerbild von Curtains
(Schlafen||Programmieren)
XHTMLforum-Mitglied
 
Registriert seit: 27.08.2008
Beiträge: 198
Curtains befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von heiko_rs Beitrag anzeigen
Dagegen ist übrigens ein Expires-Header sehr hilfreich: Ich nehme i.d.R. eine Stunde ab Aufruf, dann ist erstmal Ruhe. Eine Stunde reicht auch in jedem Falle für eine Sitzung, und kommt der Besucher dann einige Stunden später wieder, fragt sein Browser alle Dateien einmal an, überprüft sie auf Veränderung, bekommt 304 und lädt sie dann wieder aus dem Cache (und bekommt dabei eine neue Expires-Zeit, nämlich wieder eine Stunde).
Man könnte auch jede CSS-Änderung mit einer Versionsnummer im Pfad belegen:

Code:
/css/ver0001/main.css
/css/ver0002/main.css
/css/ver0003/main.css
...
Dann würde ein unendlich eingestellter Expires-Header genügen. Der Browser würde wegen des veränderten CSS-Pfads den Cache neu füllen.
Mit Zitat antworten
  #26 (permalink)  
Alt 26.10.2008, 20:12
Benutzerbild von heiko_rs
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 18.09.2005
Ort: Berlin
Beiträge: 9.848
heiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblick
Standard

Nur um einen einzigen (eh mit 304 beantworteten) Request beim erneuten Besuch der Seite zu vermeiden? Das wäre mir die Extra-Arbeit nicht wert
__________________
Wer keinen Link auf seine problembehaftete Seite posten kann, weil diese noch nicht online ist: Testcase bauen, online stellen, Link posten.
Internet-Grundregel: Unbekannte Begriffe googeln! (Erspart 99% aller Nachfragen.)
Mit Zitat antworten
  #27 (permalink)  
Alt 27.10.2008, 11:16
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Zitat:
Zitat von heiko_rs Beitrag anzeigen
Dagegen ist übrigens ein Expires-Header sehr hilfreich: Ich nehme i.d.R. eine Stunde ab Aufruf, dann ist erstmal Ruhe. Eine Stunde reicht auch in jedem Falle für eine Sitzung, und kommt der Besucher dann einige Stunden später wieder, fragt sein Browser alle Dateien einmal an, überprüft sie auf Veränderung, bekommt 304 und lädt sie dann wieder aus dem Cache (und bekommt dabei eine neue Expires-Zeit, nämlich wieder eine Stunde). ...
Das baue ich mittlerweile auch überall ein, ist sehr hilfreich. Wenn beim ersten Besuch etwas mehr "Action" stattfindet, finde ich das völlig in Ordnung, anschließend wird dann der Cache verwendet und gut ist.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Little Boxes Dieter Ressourcen 43 15.11.2011 03:05
Little Boxes Teil 1: Crashkurs zu HTML und CSS online lesen pmmueller Ressourcen 6 25.02.2010 15:17
Bescheid: Little Boxes - Teil 0 (Null) pmmueller Ressourcen 29 28.12.2008 15:54
Little Boxes - Varianten FloZen Offtopic 14 03.06.2008 11:10
Suche PHP Buch ala Little Boxes Zen5656 Serveradministration und serverseitige Scripte 2 17.02.2007 13:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:04 Uhr.