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