SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Frontend Performance
Inhaltsverzeichnis
Javascript später parsen
Asynchrones nachladen
Grafiken
CSS performant gestalten
Quelltext komprimieren
Javascript später parsen
Externes JavaScript sollte vor dem schließenden Body-Tag
platziert werden
Vorsicht, wenn im DOM jQuery Funktionen aufgerufen
werden
Asynchrones nachladen
Inhalte nur dann holen, wenn man sie braucht
Javascript
Beispiel:
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr )
{
console.log( "Load was performed." );
});
CSS mit Hilfe von jQuery
Beispiel:
/* Variante 1: Linked Stylesheet */
$('<link rel="stylesheet" href="test.css" />').appendTo('head');
/* Variante 2: Inline Styles */
$.get( 'test.css', function(data) {
$('<style />').html(data).appendTo('head');
});
Grafiken
Sprites verwenden
Ersparen mehrere Server Requests
Durch Compass flexibel und einfach einsetzbar
Überlegung: Mehrere Sprites verwenden
Viewport spezifische Grafiken
Beispiel: Picturefill
<span class="picture" data-picture="" data-alt="">
<span
data-src="760.jpg"
data-media="(min-width: 569px)"></span>
<span
data-src="1240.jpg"
data-media="(min-width: 768px)"><img
alt=""
src="1240.jpg"></span>
<!--[if (lt IE 9) & (!IEMobile)]>
<span data-src="760.jpg"></span>
<![endif]-->
<noscript>
<img src="760.jpg" alt="">
</noscript>
</span>
Grafiken nachladen
Durch den Einsatz von Plugins können Grafiken erst dann
angezeigt werden, wenn diese im Viewport erscheinen
Beispiel: Lazy Load
<img class="lazy" data-original="img/example.jpg" alt=""
width="640" heigh="480" >
<noscript>
<img src="img/example.jpg" width="640" height="480">
</noscript>
CSS performant gestalten
Lange Selektoren
vermeiden
//Bad
body .landingpage .intro .left .inner .buttons p .submit-button {}
//Good
.buttons .submit-button {}
Möglichst nur eine Klasse
selektieren
//Bad
.button.green.left.small.first {}
//Good
.button-small {}
Vermischung mehrerer
Selektions-Typen
vermeiden
//Bad
body[id="home"] .buttons > div:first-child ~ p input[type="submit"] {
}
@import vermeiden
//Bad
<style type="text/css">
</style>
@import url("1.css");
@import url("2.css");
@import url("3.css");
@import url("4.css");
@import url("5.css");
@import url("6.css");
//Good
<link rel="stylesheet" type="text/css" href="all-in-one.css" />
Und bei Gelgenheit: CSS Dateien aufräumen
Quelltext komprimieren
Durch Kompression können Dateien bis zu 50% reduziert
werden
Automatoren wie Grunt übernehmen Kompression und
"verunstaltung" von Javascript und CSS
© 2014 Niklas Köhler
Zum Nachlesen
How to lose weight (in the browser)
Minify Javascript Online
GRUNT The JavaScript Task Runner

Weitere ähnliche Inhalte

Ähnlich wie Frontend Performance

Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Martin Kliehm
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Dirk Ginader
 
Zeitgemäße Webentwicklung
Zeitgemäße WebentwicklungZeitgemäße Webentwicklung
Zeitgemäße WebentwicklungStephan Lindauer
 
Legacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenLegacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenPhilipp Burgmer
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Sebastian Adler
 
Ajax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google SuggestAjax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google SuggestBastian Feder
 
2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend Architektur2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend ArchitekturNico Steiner
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5kkramhoeft
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile ServicesSascha Dittmann
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100Yvette Teiken
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flashpersillie
 
Einführung React Native
Einführung React NativeEinführung React Native
Einführung React NativeMarkus Günther
 
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im VergleichWie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleichgedoplan
 
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenLadezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenJoomla! User Group Fulda
 

Ähnlich wie Frontend Performance (20)

Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
 
Node.js
Node.jsNode.js
Node.js
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
Zeitgemäße Webentwicklung
Zeitgemäße WebentwicklungZeitgemäße Webentwicklung
Zeitgemäße Webentwicklung
 
Legacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenLegacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpen
 
Flex Skinning
Flex SkinningFlex Skinning
Flex Skinning
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)
 
Ajax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google SuggestAjax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google Suggest
 
2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend Architektur2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend Architektur
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
node.js
node.jsnode.js
node.js
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flash
 
Einführung React Native
Einführung React NativeEinführung React Native
Einführung React Native
 
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im VergleichWie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
Wie viel Client braucht das Web?JSF, Vaadin und AngularJS im Vergleich
 
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript KomprimierenLadezeiten Verbessern - Css Und JavaScript Komprimieren
Ladezeiten Verbessern - Css Und JavaScript Komprimieren
 

Frontend Performance