SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
@jowe
#perfmatters
The Critical Rendering Path
@jowe
Johannes Weber
@jowe
@jowe
Critical Rendering Path?
● [ˈkriːtɪʃ]
“(...) so, dass man genau prüft und streng beurteilt”
● [rẹndern]
“(...) bezeichnet die Erstellung einer Grafik aus einer Skizze oder
einem Modell”
● [Pfa̲d]“(...) schmaler Weg”
@jowe@jowe
@jowe
@jowe
Wie mache ich meine
Website schneller?
@jowe
HTML
CSS
DOM
CSSOM
JavaScript
Render
Tree
Layout PaintNetzwerk
Critical rendering path
@jowe
Warum Geschwindigkeit
wichtig ist
@jowe
Die Auswirkung einer Sekunde im Web
Aberdeen Group
@jowe
Die Auswirkung einer Sekunde im Web
Aberdeen Group
@jowe
@jowe
Ausgabe in < 1Sekunde ?
@jowe
1000 ms ist die
Herausforderung
Verzögerung Reaktion des Users
0 - 100 ms Instant
100 - 300 ms Leicht spürbare Verzögerung
300 - 1000 ms Fokus, spürbare Verzögerung
1 s+ Gedankliches Abschweifen
10 s+ Ich geh dann mal wieder...
@jowe
@jowe
HTML
CSS
DOM
CSSOM
JavaScript
Render
Tree
Layout PaintNetzwerk
Critical rendering path
@jowe
Netzwerk-
latenz
auf mobilen Geräten
@jowe
Generation Netzwerklatenz
LTE 40-100 ms
HSPA+ 50-250 ms
HSPA 150-500 ms
EDGE 600-750 ms
GPRS 700-1000 ms
@jowe
DNS Lookup TCP Connection
HTTP Request
and Response
Server
Response Time
Client-Side Rendering
Netzwerk
verarbeiten und
rendern der Seite
100ms 150ms 150ms 200ms 400ms
Eine Sekunde auf mobilen Geräten
@jowe
@jowe
Lass mal (im Detail) sehen!
@jowe
<!doctype html>
<meta charset=utf-8>
<title>Performance!</title>
<link href=styles.css rel=stylesheet />
<p>Hello <span>world!</span></p>
p { font-weight: bold; }
span { display: none; }
index.html
styles.css
Einfach, oder?
Eine einfache HTML Seite mit externen CSS...
@jowe
<!doctype html>
<meta charset=utf-8>
<title>Performance!</title>
<link href=styles.css rel=stylesheet />
<p>Hello <span>world!</span></p>
● Bytes der index.html kommen an
● kein CSS bisher geladen
p { font-weight: bold; }
span { display: none; }
index.html
styles.css
CSS
DOM
CSSOM
Render
Tree
Network
HTML
Die Antworten kommen
paketweise. Chunk for Chunk
Die ersten HTML Pakete kommen an
@jowe
@jowe
<!doctype html>
<meta charset=utf-8>
<title>Performance!</title>
<link href=styles.css rel=stylesheet />
<p>Hello <span>world!</span></p>
p { font-weight: bold; }
span { display: none; }
index.html
styles.css
CSS
DOM
CSSOM
Render
Tree
Network
HTML DOM
● <link> entdeckt, Anfrage gesendet
● DOM Konstruktion fertig!
DOM Konstruktion fertig. Warten auf CSS
Screen weiß. Das CSS blockt
das Rendering.
@jowe
<!doctype html>
<meta charset=utf-8>
<title>Performance!</title>
<link href=styles.css rel=stylesheet />
<p>Hello <span>world!</span></p>
p { font-weight: bold; }
span { display: none; }
index.html
styles.css
DOM
CSSOM
Render
Tree
Network
HTML DOM
● Die ersten Bytes vom CSS kommen an
● Wir warten weiter auf das komplette CSS!
CSS
Erste CSS bytes kommen an. Warten auf CSS!
Im Gegensatz zu HTML ist das
Laden von CSS nicht inkrementell
@jowe
<!doctype html>
<meta charset=utf-8>
<title>Performance!</title>
<link href=styles.css rel=stylesheet />
<p>Hello <span>world!</span></p>
p { font-weight: bold; }
span { display: none; }
index.html
styles.css
DOM
CSSOM
Render
Tree
Network
HTML DOM
● CSS fertig geladen
● Nun kann das CSSOM konstruiert werden
CSS CSSOM
Screen noch immer weiß?
Schließlich wird das CSSOM konstruiert!
@jowe
DOM + CSSOM = Render Bäume
body
Hello
span
world!
root
spanp
DOMCSSOM
p ● Match CSSOM + DOM nodes
● Der Screen ist weiterhin leer....
@jowe
body
Hello
span
world!
root
spanp
DOMCSSOM
p
● <span> ist kein Teil des Render Baumes
○ "display: none"
body
Hello
p
Render Tree
DOM + CSSOM = Render Bäume
@jowe
HTML
CSS
DOM
CSSOM
Render
Tree
Layout PaintNetwork
Critical rendering path
Hello
● Sobald der Render Baum erstellt wurde,
geschieht dies auch mit dem Layout der Seite
(DOM + CSSOM)
○ Dimensionen, Farben etc.
● Sobald das Layout erstellt ist:
○ Rendern der Pixel (CPU)
○ Bitmaps werden übertragen (GPU)
○ Anzeigen der Seite
Dafür sollte
man ca. 100
ms einplanen.
@jowe
Zu beachtende Regeln
1. HTML wird inkrementell geparst
a. Nicht auf das ganze HTML warten - flush early and often
2. CSS blockiert das Rendering
a. CSS schnellstmöglich auf den Client bringen
@jowe
Moment!
Was ist mit JavaScript?
@jowe
HTML
CSS
DOM
CSSOM
JavaScript
Render
Tree
Welche Rolle spielt JavaScript?
@jowe
DOM
CSSOM
JavaScript element.style.color = "#FF0000"
JS kann auf das DOM und
das CSSOM zugreifen!
Welche Rolle spielt nun JavaScript?
● JavaScript blockiert die DOM Konstruktion
● JavaScript blockiert das Laden von CSS
@jowe
HTML
CSS
DOM
CSSOM
JavaScript
Render
Tree
Layout PaintNetzwerk
Critical rendering path
@jowe
Zu beachtende Regeln
1. HTML wird inkrementell geparst
a. Nicht auf das ganze HTML warten - flush early and often
2. CSS blockiert das Rendering!
a. CSS schnellstmöglich auf den Client bringen
3. JavaScript blockiert die DOM Konstruktion und CSS
a. Inline kritisches JS, async loading
@jowe
Gefühlte Geschwindigkeit
@jowe
ohne CRP
Optimierung
Optimierter
CRP
votum.de
votum.de
@jowe
Beispiel
@jowe
@jowe
@jowe
Chunk #1
Chunk #2
die Ergebnisse
@jowe
Beispiel
@jowe
@jowe
@jowe
@jowe
@jowe
Wie messe ich den CRP?
What you can’t measure, you can’t manage.
@jowe
Chrome
DevTools
Time
@jowe
Praktisches Beispiel
https://github.com/johannes-weber/critical-rendering-path-example
@jowe
@jowe
Performance Regeln
@jowe
Bilder, Videos
Input: 67,8 KB
Output: 26,7 KB
Delta: -41,1 KB (-82.7%)
@jowe
Bilder komprimieren.
Passt die Auflösung?
Gibt es effektivere Typen? (jpg, png, gif)
Interlacing verwenden.
Mehrere Bilder in Sprites kombinieren.
Achtung bei
Responsive!
@jowe
CSS
Input: 418 bytes
Output: 290 bytes
Gzip: 194 bytes
Delta: -224 bytes (-53.59%)
@jowe
Media Queries in eigene <link> Elemente packen.
Komprimieren des CSS
Unused Styles? - Weg damit!
CSS Optimieren (short definition)
Above the Fold CSS -> inline CSS
Mehrere CSS Files konkatenieren
Effektive Selektoren
@jowe
JavaScript
Input: 351.43 KB
Output: 84.43 KB
Gzip: 29.76 KB
Delta: -321.67 KB (-91.53%)
@jowe
JavaScript minifizieren.
Mehrere JavaScript Files konkatenieren.
Asyncrones laden von externen JavaScript.
DOM manipulierend? Prerendering!
Inline JavaScript falls sinnig.
@jowe
HTML
Input: 5.67 KB
Output: 5.67 KB
Gzip: 4.03 KB
Delta: -1.64 KB (-28.97%)
@jowe
Nicht genutztes HTML entfernen. (<!-- // -->, <meta>)
HTML minifizieren!
@jowe
Performance Rules
● Minify, Compress, Cache
○ HTML, CSS, Javascript, Images
● Minimize use of render blocking resources
○ Use media queries on <link> to unblock rendering
○ Inline above the fold CSS
● Minimize use of parser blocking resources
○ Defer Javascript execution
○ Use async or defer attribute on <script>
3. JavaScript
2. CSS
1. reduzieren, komprimieren
@jowe
Links: Tooling
Share .har Files (HTTP Archive Format) Reports http://pcapperf.appspot.com/
HAR Storage solution https://code.google.com/p/harstorage/
Chrome Benchmarking Extension https://goo.gl/r1Wfok
Find CRP and extract it (npm Package) https://goo.gl/Z14ybn
Extract & Inline Critical-path CSS in HTML pages https://github.com/addyosmani/critical
Div. Gulp/Grunt/Broccoli packages gulp-concat, gulp-uglify, gulp-image-
optimization, gulp-minify-html
DevTools Timeline in Detail http://goo.gl/Bycaa2
@jowe
Links: #perfmatters im Detail
High Performance Browser Networking http://goo.gl/lt4H02
Latest DevTool Updates https://goo.gl/oXfas2
Optimizing Content Efficiency https://goo.gl/okS1Kx
Rendering Performance https://goo.gl/vGkNBJ
Critical Rendering Path in Detail https://goo.gl/7KXrDN
GZIP is not enough! https://goo.gl/Ip7eJk
@jowe
Es war mir ein Volksfest!
@jowe
Fragen?
Gerne auch auf Twitter!
#perfmatters
.de

Weitere ähnliche Inhalte

Andere mochten auch

Bien absoluto j2 2
Bien absoluto j2 2Bien absoluto j2 2
Bien absoluto j2 2fomtv
 
EMSR | weyer spezial
EMSR | weyer spezialEMSR | weyer spezial
EMSR | weyer spezialweyer gruppe
 
Lista patrón herpetofauna (1)
Lista patrón herpetofauna (1)Lista patrón herpetofauna (1)
Lista patrón herpetofauna (1)Manu Cernadas
 
2 a productomatutino_tarea4_leonardolevinas
2 a productomatutino_tarea4_leonardolevinas2 a productomatutino_tarea4_leonardolevinas
2 a productomatutino_tarea4_leonardolevinasEUCD Udelar
 
Sintesis mas informacion menos conocimiento mario vargas
Sintesis mas informacion menos conocimiento   mario vargasSintesis mas informacion menos conocimiento   mario vargas
Sintesis mas informacion menos conocimiento mario vargasAlejandra Tèllez
 
Euskadi 2013-2014
Euskadi 2013-2014Euskadi 2013-2014
Euskadi 2013-2014Francesctgn
 
2006 Imbe Nürnberg
2006  Imbe Nürnberg2006  Imbe Nürnberg
2006 Imbe Nürnbergschnobias
 
SCD13: Agile Entwicklung bei der shopware AG
SCD13: Agile Entwicklung bei der shopware AGSCD13: Agile Entwicklung bei der shopware AG
SCD13: Agile Entwicklung bei der shopware AGshopware AG
 
Netcat con bactrack
Netcat con bactrackNetcat con bactrack
Netcat con bactrackluised139
 
Ländliches Leben und Gleichstellung in einer mobilen Gesellschaft
Ländliches Leben und Gleichstellung in einer mobilen GesellschaftLändliches Leben und Gleichstellung in einer mobilen Gesellschaft
Ländliches Leben und Gleichstellung in einer mobilen GesellschaftLutz Laschewski
 
DiVa - Ihr Potential
DiVa  -  Ihr PotentialDiVa  -  Ihr Potential
DiVa - Ihr PotentialBurdaDirect
 
Fondo de liquidez
Fondo de liquidezFondo de liquidez
Fondo de liquidezmandres1349
 
Unidad educativa calasanz
Unidad educativa calasanzUnidad educativa calasanz
Unidad educativa calasanzjosholopez
 

Andere mochten auch (18)

Bien absoluto j2 2
Bien absoluto j2 2Bien absoluto j2 2
Bien absoluto j2 2
 
Vortrag Dr. Lahner Fachkräfte
Vortrag Dr. Lahner  FachkräfteVortrag Dr. Lahner  Fachkräfte
Vortrag Dr. Lahner Fachkräfte
 
EMSR | weyer spezial
EMSR | weyer spezialEMSR | weyer spezial
EMSR | weyer spezial
 
Lista patrón herpetofauna (1)
Lista patrón herpetofauna (1)Lista patrón herpetofauna (1)
Lista patrón herpetofauna (1)
 
2 a productomatutino_tarea4_leonardolevinas
2 a productomatutino_tarea4_leonardolevinas2 a productomatutino_tarea4_leonardolevinas
2 a productomatutino_tarea4_leonardolevinas
 
Sintesis mas informacion menos conocimiento mario vargas
Sintesis mas informacion menos conocimiento   mario vargasSintesis mas informacion menos conocimiento   mario vargas
Sintesis mas informacion menos conocimiento mario vargas
 
Euskadi 2013-2014
Euskadi 2013-2014Euskadi 2013-2014
Euskadi 2013-2014
 
2006 Imbe Nürnberg
2006  Imbe Nürnberg2006  Imbe Nürnberg
2006 Imbe Nürnberg
 
SCD13: Agile Entwicklung bei der shopware AG
SCD13: Agile Entwicklung bei der shopware AGSCD13: Agile Entwicklung bei der shopware AG
SCD13: Agile Entwicklung bei der shopware AG
 
Holocausto nuclear Jorge Viguer
Holocausto nuclear Jorge ViguerHolocausto nuclear Jorge Viguer
Holocausto nuclear Jorge Viguer
 
Netcat con bactrack
Netcat con bactrackNetcat con bactrack
Netcat con bactrack
 
Ländliches Leben und Gleichstellung in einer mobilen Gesellschaft
Ländliches Leben und Gleichstellung in einer mobilen GesellschaftLändliches Leben und Gleichstellung in einer mobilen Gesellschaft
Ländliches Leben und Gleichstellung in einer mobilen Gesellschaft
 
De la cru sanchez jerson
De la cru sanchez jersonDe la cru sanchez jerson
De la cru sanchez jerson
 
Plan de destrucción nacional.
Plan de destrucción  nacional.Plan de destrucción  nacional.
Plan de destrucción nacional.
 
DiVa - Ihr Potential
DiVa  -  Ihr PotentialDiVa  -  Ihr Potential
DiVa - Ihr Potential
 
QUE ES IVA
QUE ES IVAQUE ES IVA
QUE ES IVA
 
Fondo de liquidez
Fondo de liquidezFondo de liquidez
Fondo de liquidez
 
Unidad educativa calasanz
Unidad educativa calasanzUnidad educativa calasanz
Unidad educativa calasanz
 

Ähnlich wie #perfmatters - Optimizing the Critical Rendering Path

Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsGregor Biswanger
 
Performance-Optimierung für WordPress-Websites
Performance-Optimierung für WordPress-WebsitesPerformance-Optimierung für WordPress-Websites
Performance-Optimierung für WordPress-WebsitesAndré Goldmann
 
Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Bastian Grimm
 
SEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDSEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDConny Stier
 
Wir brauchen einen neuen Workflow
Wir brauchen einen neuen WorkflowWir brauchen einen neuen Workflow
Wir brauchen einen neuen WorkflowJens Grochtdreis
 
Aspekte Moderner Frontendentwicklung
Aspekte Moderner FrontendentwicklungAspekte Moderner Frontendentwicklung
Aspekte Moderner FrontendentwicklungJens Grochtdreis
 
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
 
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburg
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni MagdeburgResponsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburg
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburgmarmalade GmbH
 
Blank Template - less is more #jd13ch
Blank Template - less is more #jd13chBlank Template - less is more #jd13ch
Blank Template - less is more #jd13chAlexander Schmidt
 
Qooxdoo 0.8 - Das Neue Gui Toolkit
Qooxdoo 0.8 - Das Neue Gui ToolkitQooxdoo 0.8 - Das Neue Gui Toolkit
Qooxdoo 0.8 - Das Neue Gui ToolkitFabian Jakobs
 
Was nicht passt wird responsive gemacht
Was nicht passt wird responsive gemachtWas nicht passt wird responsive gemacht
Was nicht passt wird responsive gemachtChristoph Reinartz
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web designHenning Schmidt
 
JSN Dome Anpassungshandbuch
JSN Dome AnpassungshandbuchJSN Dome Anpassungshandbuch
JSN Dome AnpassungshandbuchJoomlaShine
 
Andy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy Bosch
 
JSN Cube Anpassungshandbuch
JSN Cube AnpassungshandbuchJSN Cube Anpassungshandbuch
JSN Cube AnpassungshandbuchJoomlaShine
 
Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Sebastian Sanitz
 
WordPress.com-Blogs individualisieren
WordPress.com-Blogs individualisierenWordPress.com-Blogs individualisieren
WordPress.com-Blogs individualisierenTorsten Landsiedel
 
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
 

Ähnlich wie #perfmatters - Optimizing the Critical Rendering Path (20)

Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Performance-Optimierung für WordPress-Websites
Performance-Optimierung für WordPress-WebsitesPerformance-Optimierung für WordPress-Websites
Performance-Optimierung für WordPress-Websites
 
Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014
 
SEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDSEO Produktspezifikation für RWD
SEO Produktspezifikation für RWD
 
Wir brauchen einen neuen Workflow
Wir brauchen einen neuen WorkflowWir brauchen einen neuen Workflow
Wir brauchen einen neuen Workflow
 
Aspekte Moderner Frontendentwicklung
Aspekte Moderner FrontendentwicklungAspekte Moderner Frontendentwicklung
Aspekte Moderner Frontendentwicklung
 
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
 
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburg
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni MagdeburgResponsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburg
Responsive Webdesign Vortrag vor dem ZKI Arbeitskreis Web - Uni Magdeburg
 
Blank Template - less is more #jd13ch
Blank Template - less is more #jd13chBlank Template - less is more #jd13ch
Blank Template - less is more #jd13ch
 
Kleiner Blick auf CSS3
Kleiner Blick auf CSS3Kleiner Blick auf CSS3
Kleiner Blick auf CSS3
 
Qooxdoo 0.8 - Das Neue Gui Toolkit
Qooxdoo 0.8 - Das Neue Gui ToolkitQooxdoo 0.8 - Das Neue Gui Toolkit
Qooxdoo 0.8 - Das Neue Gui Toolkit
 
Was nicht passt wird responsive gemacht
Was nicht passt wird responsive gemachtWas nicht passt wird responsive gemacht
Was nicht passt wird responsive gemacht
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web design
 
JSN Dome Anpassungshandbuch
JSN Dome AnpassungshandbuchJSN Dome Anpassungshandbuch
JSN Dome Anpassungshandbuch
 
Andy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy bosch-jsf-javascript
Andy bosch-jsf-javascript
 
Frontend2017
Frontend2017Frontend2017
Frontend2017
 
JSN Cube Anpassungshandbuch
JSN Cube AnpassungshandbuchJSN Cube Anpassungshandbuch
JSN Cube Anpassungshandbuch
 
Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010Testgetriebene Entwicklung mit JavaScript - webtech 2010
Testgetriebene Entwicklung mit JavaScript - webtech 2010
 
WordPress.com-Blogs individualisieren
WordPress.com-Blogs individualisierenWordPress.com-Blogs individualisieren
WordPress.com-Blogs individualisieren
 
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
 

Mehr von Johannes Weber

Progressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & LearningsProgressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & LearningsJohannes Weber
 
Formular handling in AngularJS
Formular handling in AngularJSFormular handling in AngularJS
Formular handling in AngularJSJohannes Weber
 
AngularJS Munich Meetup #7 - Intro
AngularJS Munich Meetup #7 - IntroAngularJS Munich Meetup #7 - Intro
AngularJS Munich Meetup #7 - IntroJohannes Weber
 
LeanJS - Lean startup with JavaScript
LeanJS - Lean startup with JavaScriptLeanJS - Lean startup with JavaScript
LeanJS - Lean startup with JavaScriptJohannes Weber
 
The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
 
A Story about AngularJS modularization development
A Story about AngularJS modularization developmentA Story about AngularJS modularization development
A Story about AngularJS modularization developmentJohannes Weber
 
Debugging War Stories & Strategies to Survive on RejectJS 2014
Debugging War Stories & Strategies to Survive on RejectJS 2014Debugging War Stories & Strategies to Survive on RejectJS 2014
Debugging War Stories & Strategies to Survive on RejectJS 2014Johannes Weber
 
Updated: Fiese Fallstricke, sexy Strategien
Updated: Fiese Fallstricke, sexy StrategienUpdated: Fiese Fallstricke, sexy Strategien
Updated: Fiese Fallstricke, sexy StrategienJohannes Weber
 
AngularJS with RequireJS
AngularJS with RequireJSAngularJS with RequireJS
AngularJS with RequireJSJohannes Weber
 
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienJohannes Weber
 
Facebook, Google, Youtube & co
Facebook, Google, Youtube & coFacebook, Google, Youtube & co
Facebook, Google, Youtube & coJohannes Weber
 
User centered design - Personas
User centered design - PersonasUser centered design - Personas
User centered design - PersonasJohannes Weber
 
Usability Test Inlandsüberweisung
Usability Test InlandsüberweisungUsability Test Inlandsüberweisung
Usability Test InlandsüberweisungJohannes Weber
 
Paper: Steuerung öffentlicher Screens
Paper: Steuerung öffentlicher ScreensPaper: Steuerung öffentlicher Screens
Paper: Steuerung öffentlicher ScreensJohannes Weber
 
Steuerung öffentlicher Screens
Steuerung öffentlicher ScreensSteuerung öffentlicher Screens
Steuerung öffentlicher ScreensJohannes Weber
 
Customer Centered Design
Customer Centered DesignCustomer Centered Design
Customer Centered DesignJohannes Weber
 
Hardware Usability Testing
Hardware Usability TestingHardware Usability Testing
Hardware Usability TestingJohannes Weber
 
Projektmanagement & Innovation
Projektmanagement & InnovationProjektmanagement & Innovation
Projektmanagement & InnovationJohannes Weber
 

Mehr von Johannes Weber (20)

Progressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & LearningsProgressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & Learnings
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Formular handling in AngularJS
Formular handling in AngularJSFormular handling in AngularJS
Formular handling in AngularJS
 
AngularJS Munich Meetup #7 - Intro
AngularJS Munich Meetup #7 - IntroAngularJS Munich Meetup #7 - Intro
AngularJS Munich Meetup #7 - Intro
 
LeanJS - Lean startup with JavaScript
LeanJS - Lean startup with JavaScriptLeanJS - Lean startup with JavaScript
LeanJS - Lean startup with JavaScript
 
The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5
 
A Story about AngularJS modularization development
A Story about AngularJS modularization developmentA Story about AngularJS modularization development
A Story about AngularJS modularization development
 
Debugging War Stories & Strategies to Survive on RejectJS 2014
Debugging War Stories & Strategies to Survive on RejectJS 2014Debugging War Stories & Strategies to Survive on RejectJS 2014
Debugging War Stories & Strategies to Survive on RejectJS 2014
 
Updated: Fiese Fallstricke, sexy Strategien
Updated: Fiese Fallstricke, sexy StrategienUpdated: Fiese Fallstricke, sexy Strategien
Updated: Fiese Fallstricke, sexy Strategien
 
AngularJS with RequireJS
AngularJS with RequireJSAngularJS with RequireJS
AngularJS with RequireJS
 
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy StrategienResponsive Webdesign: Fiese Fallstricke und sexy Strategien
Responsive Webdesign: Fiese Fallstricke und sexy Strategien
 
Facebook, Google, Youtube & co
Facebook, Google, Youtube & coFacebook, Google, Youtube & co
Facebook, Google, Youtube & co
 
User centered design - Personas
User centered design - PersonasUser centered design - Personas
User centered design - Personas
 
jQuery Performance
jQuery PerformancejQuery Performance
jQuery Performance
 
Usability Test Inlandsüberweisung
Usability Test InlandsüberweisungUsability Test Inlandsüberweisung
Usability Test Inlandsüberweisung
 
Paper: Steuerung öffentlicher Screens
Paper: Steuerung öffentlicher ScreensPaper: Steuerung öffentlicher Screens
Paper: Steuerung öffentlicher Screens
 
Steuerung öffentlicher Screens
Steuerung öffentlicher ScreensSteuerung öffentlicher Screens
Steuerung öffentlicher Screens
 
Customer Centered Design
Customer Centered DesignCustomer Centered Design
Customer Centered Design
 
Hardware Usability Testing
Hardware Usability TestingHardware Usability Testing
Hardware Usability Testing
 
Projektmanagement & Innovation
Projektmanagement & InnovationProjektmanagement & Innovation
Projektmanagement & Innovation
 

#perfmatters - Optimizing the Critical Rendering Path