Neue Jasmin-Servlet-Version
In einigen Projekten setzen wir bereits eine neue Version des Jasmin-Servlets ein. Zu den Neuerungen zählen:
Unterstützung von JavaScript am Ende der Seite
Aus Performance-Gründen empfiehlt es sich, JavaScript am Ende der Seite direkt vor dem schließenden body-Tag zu laden. Aus verschiedenen Gründen ist das an dieser Stelle aber recht schwierig zu realisieren. Vor allem stellen Inline-Scripte, welche von der Existenz extern geladener Ressourcen ausgehen, ein Problem dar. Um dieses Problem zu umgehen, wurde eine Möglichkeit entwickelt, diesen Inline-Code für eine spätere Ausführung zu registrieren.
2 Requests pro Ressource statt bisher einem
JavaScript und CSS werden mit 2 Requests statt bisher einem Request geladen. Dies stellt ein verbessertes Caching sicher. Mit dem ersten Request werden die Ressourcen geladen, die für alle Seiten benötigt werden (das sind für gewöhnlich die Basis-Projekt-Styles und Framework-Scripte). Dieser Request macht den größten Anteil an den Ressourcen aus und kann nach dem initialen Laden auf den Folgeseiten unverändert aus dem Cache bezogen werden. Mit dem zweiten Request werden seitenspezifische Ressourcen geladen. Diese können von Seite zu Seite variieren, haben aber in den meisten Fällen eine moderate Größe. Dieser variable Anteil führte bei der früheren Version mit nur einem Request dazu, dass kein Caching genutzt werden konnte, da sich der Request seitenspezifisch immer wieder veränderte. Die gewonnene Ladezeit durch das verbesserte Caching-Verhalten überwiegt dabei eindeutig die Performance-Einbußen, die durch den zusätzlichen Request entstehen.
Definition eines Prä- und Suffix
Dieses Feature ist besonders in Zusammenhang mit JavaScript sinnvoll. Dem ersten Request kann ein Präfix vorangestellt werden, welcher ganz grundsätzliche Angaben zu z. B. Namespaces oder Fehlerroutinen erlaubt. Genau so kann dem zweiten Request ein Suffix angehängt werden, welcher Code enthält, der nach dem kompletten Laden des JavaScripts ausgeführt werden soll. Dazu zählt die Ausführung der registrierten Inline-Scripte.
gZip-Komprimierung
Die CSS- und JavaScript-Ressourcen werden jetzt nicht mehr nur minimiert sondern bei einer Unterstützung durch den Browser auch mit gZip komprimiert. Dies reduziert die Größe der zu übertragenden Daten um bis zu 80%.
Expires-Header
Um ein verbessertes Caching-Verhalten zu erreichen, werden die ausgelieferten Ressourcen mit einem Expires-Header versehen. Der Zeitraum ist momentan auf 10 Minuten begrenzt, da eine Versionierung der Requests, welche ein zuverlässiges Neuladen bei einer Änderung der Ressourcen sicherstellt, aussteht.
Archive
- Februar 2012 (1)
- Oktober 2011 (1)
- August 2011 (2)
- April 2011 (1)
- Oktober 2010 (6)
- September 2010 (5)
- August 2010 (3)
- Juli 2010 (2)
- Juni 2010 (3)
- Mai 2010 (9)
- April 2010 (8)
- März 2010 (13)
- Februar 2010 (10)
- Januar 2010 (11)
- Dezember 2009 (8)
- November 2009 (6)
- Oktober 2009 (10)
- September 2009 (9)
- August 2009 (12)
- Juli 2009 (16)
- Das Neueste ...
- Älteres ...
Trackbacks
Das DSL-Projekt ging letzte Woche mit dem neuen Jasmin-Servlet 2.1 online. An diesem Beispiel möchte ich zeigen, wie eine weitere Optimierung dieses Projekts aussehen könnte. Der erste Request In der nachfolgenden Grafik sind sämtliche Requests in F
Aufgenommen: Okt 18, 13:38
Die Far Future Expires Header kommunizieren dem Browser wie hier beschrieben, dass sich die ausgelieferten Ressourcen für einen sehr langen Zeitraum nicht verändern werden. Dies verhindert, dass der Browser bei jedem neuen Anfordern der Ressource beim Ser
Aufgenommen: Okt 23, 21:24
"It's supposed to be hard. If it wasn't hard, everyone would do it. The hard is what makes it great." Dieses Zitat stammt aus dem Film "A League of their Own" mit Tom Hanks. Gehört habe ich das Zitat vor einigen Wochen während der Präsentation "fast by
Aufgenommen: Nov 24, 00:00
Seit einigen Tagen bietet Google in seinen Webmaster Tools ein neues experimentelles Feature zur Auswertung der Site Performance. In dem Artikel sind auch die weiterführenden Links beachtenswert. Neben einem Verlauf der durschnittlichen Ladezeiten der
Aufgenommen: Dez 06, 23:39