Joomla!® User Group Fulda

Wie kann man die Seite beschleunigen?

Ladezeiten verbessern - Teil 11 - Gute Lösung für Joomla!

Das folgende Skript lässt sich so für CSS- und JavaScript-Dateien einsetzen. Packt man alle Tipps der vorherigen Artikel zusammen, kommt dabei folgendes Heraus:

 

<?php

  header('Content-Type: text/javascript');

  $expires = 60*60*24*7;
  header("Pragma: public");
  header("Cache-Control: maxage=".$expires);
  header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');

  $files = array(
    "mootools.js",
    "caption.js"

  );

  $ETag = "";

  foreach ($files as $file) {
    $ETag = dechex(fileinode($file));
    $ETag.= "-".dechex(filesize($file));
    $ETag.= "-".dechex(((filemtime($file).str_repeat("0",6)+0) & (8589934591)));
    $ETag.="-";
  }
  $ETag= md5($ETag);
  header("Etag: $ETag");
  if (trim($_SERVER["HTTP_IF_NONE_MATCH"]) == $ETag) {
    header("HTTP/1.1 304 Not Modified");
    exit;
  }

  if( strpos($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip") !== FALSE){
    ob_start("ob_gzhandler");
  } else {
    ob_start();
  }

  foreach ($files as $file) {
    include($file);
  }

  ob_end_flush();
?>

 

Das Script wird einfach ins Verzeichnis der JavaScripts (/media/system/js) z. B. unter dem Namen "js_together.php" kopiert. Anschließend werden wird dieses Skript in den Kopf der index.php des Templates eingebunden:

 

...
<head>

<script type="text/javascript" src="/media/system/js/js_together.php"></script>

<jdoc:include type="head" />
...

 

Es folgt die Betrachtung der Ladezeiten: Nach dem ersten Aufruf.

 

JavaScript - Zusammengepackt - Erster Aufruf

 

Die JavaScript-Dateien "mootools.js" und "caption.js" werden zusammen in der Datei "js_together.php" übertragen. Insgesamt sind das 20,7 KByte. Der Spaß dauert hier gerade mal 569 ms (Messung mit Firebug, von meinem Internetanschluss).

Der erneute Aufruf der Seite ...

 

JavaScript - Zusammengepackt - Weiterer Aufruf

 

... bewirkt, dass die Datei "js_together.php" nur die Meldung "304 Not Modified" zurückgibt. Das Ganze passiert in 192 ms. Wieder ein wenig Zeit gespart.

Das Ergebnis nach den Optimierungen aus "der perfekten Lösung für CSS- und JavaScript-Dateien":

 

Ergebnis first view

 

Ein großer Erfolg wir dann auch sofort beim erneuten Laden der Seite sichbar:

 

Ergebnis repeat view

 

Innerhalb von 1,4 Sekunden ist alles neu geladen. Nur fünf Bilder scheinen noch nicht gecached zu werden. Da muss man nochmal nachfassen.

Kommentar schreiben

Kommentare sind jeder Zeit willkommen. Beachtet, dass eure Kommentare zunächst von uns gelesen werden, bevor wir sie freischalten. Ihr könnt euch vorstellen, das auch über diese Komponenten viel Spam verbreitet wird.

Weiterhin noch der Hinweis: Die Kommentar-Erweiterung arbeitet mit Cookies! Ohne aktive Cookies werden die Captchas nicht erkannt!


Sicherheitscode
Aktualisieren

JUG Fulda

Anmeldung

Wer mitmachen möchte schickt uns bitte über das Kontaktformular eine kurze Info mit Eurer E-mail-Adresse und eurem Wunschnamen.

JoomlaDay 2013

JD13DE_banner_160x600.jpg

Copyright © 2013 Joomla!® User Group Fulda. Alle Rechte vorbehalten.
Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.