1. Neues MovableType Plugin mt:TemplateModifiedDate und Minify

    Stefan · 22.04.09, 22:37 Uhr · Konzepte, LesMads, Movable Type · Tags: , , , , ,

    Wir sind ständig am Optimieren der Ladezeiten des Frontends unserer Websites und Blogs. So auch Letztens bei LesMads.de geschehen. Wir versuchen momentan alle Scripte und CSS über Minify zusammenzuführen und die Dateigrößen zu verringern.

    Das Grundprinzip von Minify ist recht einfach: Verschiedene Dateien selben Typs werden in Gruppen zusammengefasst, und diese werden mittels einer URL neu aufgerufen. Nun werden diese Dateien zusammengeführt und verkleinert. Um auch performant zu arbeiten, werden diese Dateien zwischengespeichert (gecached).

    Das ergibt nun folgendes Problem: Wie merkt dieses Script jetzt, wenn eine Änderung in einer der Dateien vorgenommen wurde? Indem man die Dateien versioniert, d.h. einen eindeutige Zeiger mit an die URL hängt. Oftmals werden da zufällige Timestamps genommen, allerdings würden diese das Caching ad absurdum führen. Daher nimmt man bei Nutzung eines CMS entweder – bei vorhandener Versionierung – die Versionierungs-ID, oder aber das letzte Änderungsdatum der Datei.

    Bei unserem oft verwendeten Movable Type (OpenSource) 4+ hat man leider keine Versionierung und einen Standard-MT-Tag der das Modifizerungsdatum eines Templates ermittelt, gibt es ebensowenig. Daher habe ich folgendes kleines Plugin entwickelt, was dieses nun für uns tut:

    Templatename: TemplateModifiedDate
    Beschreibung: Erzeugung eines Timestamps des letzten Änderungsdatums eines beliebigen Templates.
    Anwendung:
    Folgende kurze Zeile ergibt den Zeitstempel der letzten Änderung des Templates namens „Stylesheet“:

    <mt:TemplateModifiedDate template="Stylesheet" />

    Ergebnis z.B.: 20090323143818

    Zusätzliches Feature: Wenn man das letzte Änderungsdatum von mehreren Templates möchte (um z.B. das Änderungsdatum von einer Liste von Templates zu ermitteln, das zu letzt geändert wurde), kann man mehrere Templates in einen Variablenblock setzen:

    <mt:SetVarBlock name="jstemplates">
    JavaScript
    Custom JavaScript
    </mt:SetVarBlock>
    <mt:TemplateModifiedDate template="$jstemplates" />

    Download Plugin: template_modified_date_v01.tar.gz (1 KB)
    Benötigt: Movable Type 4+ (getestet in MTOS 4.12 und 4.25)

    Mit Hilfe dieses Plugins sind wir nun bei in der Lage z.B. solche URLs zu bilden: /min/g=javascript&20090323143818 (oder mit htaccess schöner: /min/javascript/20090323143818) die bei jedem Aufbaud der Vorlagen die Template-Daten checkt und so sicherstellt, dass der Enduser immer die aktuellen CSS ausgeliefert bekommt (und die Browser beim Cachen keinen Strich durch die Rechnung machen).

  2. Kommentar schreiben

    XHTML: Du kannst diese Tags nutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Gehe zur polyCODER Startseite