[FONT=lucida sans unicode]Hey Leute,
sollte man externe CSS- und JS-Dateien zusammenfassen?[/FONT]
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen
[FONT=lucida sans unicode]Hey Leute,
sollte man externe CSS- und JS-Dateien zusammenfassen?[/FONT]
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
Nein, wie willst Du das machen? Wenn sie extern sind, kannst Du das schlecht beeinflussen.
Oder erkläre kurz, was Du meinst.
Gruß
Ingo
[FONT=lucida sans unicode]Es gibt ja die Möglichkeit mit Caching Programmen wie W3 Total Cache, Wp Minify etc. die Dateien zusammenzufassen, so auch externe CSS- und JS-Dateien. Aber ist das sinnvoll?[/FONT]
Wenn viele Queries generiert werden, ja. Funktioniert aber meist nicht mit Klickibunti, da dann CSS/JS-Fehler daraus resultieren. Kann in echter Arbeit münden, da man ggf. die Ladereihenfolge nur mühsam mit einem Filter verändern kann.
So gesehen ja, denn die gecachten bzw. minifizierten CSS- und JS-Dateien sind ja dann nicht mehr extern, sondern lokal. Jeder externe Request ist potenziell eine Bremse.
Gruß
Ingo
[FONT=lucida sans unicode]D. h. es ist sinnvoll, man muss aber ausprobieren bei welchen externen Dateien es funktioniert und bei welchen nicht, richtig?
Vom Verständnis her ist, es ja so, dass i. d. R. um die 4 Requests pro Domain gleichzeitig verarbeitet werden können. Natürlich dauert es ja eine gewisse Zeit eine Verbindung zu einer Domain aufzubauen.
Plan sollte es also sein, so viel Dateien wie möglich zusammen zu fassen, und die statischen Dateien, wie Cache-Inhalt, Bilder, JS, CSS etc. auf ein CDN auszulagern um erstens den eventuellen Vorteil des Serverstandorts zu nutzen und zweitens die Requests zu verteilen.
Liege ich damit richtig?[/FONT]
Nein. Versuch nicht was zu erklären, wovon Du keine Ahnung hast. ;)
1. Die Anzahl der simultanen Requests kann man einstellen (wenn man Zugriff darauf hat).
2. Ein Request findet nicht auf die Domain statt, sondern auf den Server.
3. Die Domain wird vorher über den DNS aufgelöst.
4. Im Optimalfall hat man 1 CSS-Datei und 1 JS-Datei. Vorzugsweise sind in der CSS-Datei die statischen Grafiken implementiert (base64).
5. Die Plugins zum Zusammenfassen und Minifizieren (egal welches) verfahren hier ganz plump: In der Reihenfolge durchprügeln, wie sie geladen werden. Dabei werden sämtliche Tabs und Linebreaks (/t und /n) entfernt und der Whitespace (rund um das Semikolon) optimiert. Jede Datei wird in 1 Zeile geschrieben. Die Ausgabe erfolgt dann über einen PHP-Wrapper. CSS im Header, JS im Footer.
Man kann es auch Überoptimieren. Minifizieren bringt IMHO relativ wenig. Und wir Leben nicht mehr in einem Zeitalter, wo man auf ein paar Kilobyte achten muss. Wenn ich in der Summe mind. 100KB spare, denke ich mal drüber nach.
Entscheidend ist der subjektive Eindruck des Besuchers. Wenn die anderen Hausaufgaben gemacht sind und die Seite schnell lädt, kann ich mir diese Baustelle ersparen. Alternativ bietet es sich an, die Dateien manuell zusammen zu führen, zu testen und dann ins Theme kompakt einzubinden. Der Weg über einen filter ist dabei unerlässlich.
Autoptimize macht den Job in der Regel sehr zuverlässig - ohne den Bullshit irgendwelcher Cache-Plugins.
[FONT=lucida sans unicode]War ja nur ein Versuch ;)
Okay, bin voll bei Dir. Um ein paar KB geht es nicht. Mir geht es auch eher um die Requests. Derzeit hab ich mit aktiviertem Caching rund 90 Requests. Die wollte ich minimieren. Oder meinst Du, dass es gar nicht nötig ist?[/FONT]
Siehe hier
http://forum.wpde.org/showthread.php?t=119957
Du fragst viel (was nicht falsch ist), setzt aber eigentlich gar nichts um.
90 Requests hört sich für mich zu viel an. Aber Teste doch mal deine Seite bei gtmetrix oder mit was ähnlichem, dann bekommst die Zeit für den Page-Load. Google empfiehlt hier glaubig unter 4 Sekunden, damit einem Nutzer die Seite nicht zu langsam erscheint.
Siehe hier
http://forum.wpde.org/showthread.php?t=119957
Du fragst viel (was nicht falsch ist), setzt aber eigentlich gar nichts um.
Das wollte ich auch noch erwähnen, das wir das schon mal hatten...
Google empfiehlt hier glaubig unter 4 Sekunden, damit einem Nutzer die Seite nicht zu langsam erscheint.
4 Sekunden erscheint mir reichlich hoch gegriffen:
Zitat57 Prozent der Befragten verlassen eine Site nach 3 Sekunden Ladezeit.
http://business.chip.de/news/Web-Ladez…b_48606881.html
Es werden ja immer Tests erwähnt, wie von Amazon:
Zitat100 ms of extra load time caused a 1% drop in sales.
http://www.sistrix.de/frag-sistrix/o…lich-pagespeed/
Nur was setzen Amazon oder andere als Ausgangswerte für diese Tests?
[FONT=lucida sans unicode]In diesem Thread geht es mir eher um die externen Dateien.
Habe die internen Dateien zusammengefasst und so rund 38 Requests gespart. Allerdings frage ich mich eben, deswegen hatte ich den Thread hier eröffnet, ob es auch sinnvoll ist dies mit den externen Dateien zu tun.[/FONT]
4 Sekunden erscheint mir reichlich hoch gegriffen:
...
Ja finde ich auch, die Seite wo das Stand finde ich auch grad nicht mehr.
[FONT=lucida sans unicode]In diesem Thread geht es mir eher um die externen Dateien.
[/FONT]
Meinst du mit extern jetzt die Dateien die durch Plugins z.B. von Google gezogen werden ?
[FONT=lucida sans unicode]Ja genau, Dateien, die z. B. von Social Share Buttons gezogen werden etc.[/FONT]
Das wird genau so sein wie bei den internen, um so weniger um so besser. Ich denke formateins hat schon alles wichtige gesagt http://forum.wpde.org/konfiguration/…html#post521260
[FONT=arial]Ich komm demnächst mal mit dem Vierkantholz und prügel Dir das, was schon zig mal erwähnt wurde, in Deine Birne! :twisted:
1. Installier Dir Autoptimize und probiers einfach aus. Häkchen setzen schaffste wohl noch. Wenn's die Seite zerschiesst, Häkchen wieder rausmachen.
2. Ich hab lange mit dem RT17 Theme geliebäugelt, aber der Bullshit, den die in Sachen JS/CSS da abfeuern, ist einfach nur grandios shice. Warum? Weil jede Furz-Funktion in einzelne JS-Dateien ausgelagert ist. Und weil auf jeder Seite tonnenweise... nein. Sagen wir einfach mal, dass das CSS simply way too much ist.
3. Wordpress kann einfach keine Conditionals. Ich überlege schon lange, dass mal als Core-Hack nachzuarbeiten. Über einen Conditional innerhalb der WP-API könnte man verschiedene Dinge abfragen und sequentiell Daten laden. Nur das, was nötig ist.
4. Je mehr Plugins Du verwendest, desto mehr JS/CSS kommt obligatorischer Weise in Deine Seite.
5. Mal abgesehen davon solltest Du den Fokus auf eine ordentliche Umgebung legen. Sprich headers, expires und das CDN nutzen. Wenn Du das gemacht hast, sollte der Amiserver auch hierzulande recht schnell reagieren. Aber wer weiß - bei den Pleitegeiern da drüben...
6. Den Schmodder von Theme kannst Du mal manuell zusammenfassen. Sprich: alles, was im css- bzw. js-Verzeichnis liegt, in 1 Datei packen. Bei den JS-Files drauf achten, dass die Funktionen ordentlich notiert sind (like so: ;(function($) { ... })(jQuery); ). Die musst Du dann im Theme mittels filter einbinden und die aktuellen rauswerfen. So grob geschätzt reduzierst Du die Requests damit um die Hälfte.
7. CDN. CDN. CDN. Mach mal. Insbesondere Plugin- und Theme-Verzeichnis freuen sich darüber.
Zu guter Letzt noch eine Erweiterung für Deine functions.php:
// Remove version numbers and meta generator
remove_action('wp_head', 'wp_generator');
function foe_remove_version () {
return '';
}
add_filter('the_generator', 'foe_remove_version');
// Remove wp version param from enqueued scripts
function foe_remove_versions ( $src ) {
if ( strpos( $src, 'ver=' ) )
$foe_src = remove_query_arg( 'ver', $src );
return $foe_src;
}
add_filter( 'style_loader_src', 'foe_remove_versions', 9999 );
add_filter( 'script_loader_src', 'foe_remove_versions', 9999 );
Alles anzeigen
Das entfernt die "?ver=5555"-Parameter im Quelltext.
Meld Dich erst wieder, wenn Du mind. die Hälfte davon umgesetzt hast...[/FONT] ;)
[FONT=lucida sans unicode]:shock:
1. Probiere ich aus.
2. Ja, guter Support, aber das Ding ist einfach zu aufgebläht. Der Entwickler ist (O-Ton) der Meinung, dass ein guter Server locker 150 Requests ab kann. Na ja, seine Meinung, ich finde es nur unnötig.
5. Dafür werde ich W3 Total Cache nutzen.
6. Da muss ich mich erst einmal einarbeiten. Vor allem bei Theme-Updates war dann der ganze Aufwand "umsonst".
7. Werde in ein paar Tagen das CDN von MT nutzen, sprich Edgecast-Network.
Wozu die Erweiterung, also was bringt die?[/FONT]
[FONT=lucida sans unicode]Ergebnis zu 1.:
CSS funktioniert ganz gut, 22 weniger Requests (muss aber noch im Detail schauen, ob Darstellungsfehler auftreten) und bei JS zerschießt er mir die halbe Seite.[/FONT]
5. W3C nimmt keine Servereinstellungen vor. Kein mod_expires aktiv - nix funktionieren. Und des CDN musst Du schon selber anlegen, auch das kann W3C nicht. Das Plugin nimmt nur Domains entgegen.
6. Child-Theme. Nuff said.
Erweiterung: Die Versionsnummern verhindern u. U. das Caching, insbesondere, wenn sich die Zahlen ändern. Gab mal so Schlaumeier, die da einen Timestamp dran gehängt haben... Es gibt auch Helden, die hier mit "Sicherheit" argumentieren, bspw. wenn ein Security Leak in einer JS vorhanden ist, könnte man hier die Versionsnummer abklopfen uswusf... *hust*
[FONT=lucida sans unicode]Wie kann es sein, dass in meiner htaccess noch was vom vorher benutzen SuperCache-Plugin steht, wenn ich aktuell W3 TotalCache benutze? http://screencast.com/t/8EHTOyqI[/FONT]
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!