SlideShare a Scribd company logo
1 of 15
Download to read offline
JavaScript
Performance
Jak ładujemy skrypty i jakie ma to
znaczenie?
Barbara Gaca-Tworek
Ładowanie
skryptów
<script>
//inline script
</script>
<script src=„/script.js”>
</script>
Najważniejsze czynniki
Network
Jak JavaScript konkuruje z
innymi zasobami.
Parser
Jak JavaScript wpływa na
parsowanie HTMLa.
Optymalnie
ładowany skrypt
Nie wykorzystuje sieci bardziej niż to konieczne
(adekwatny priorytet ładowania) oraz możliwie
nie opóźnia renderowania strony.
Parser
HTML
JS
Network
1. Klasyczne podejście
<script>
//inline script
</script>
<script src=„/script.js”>
</script>
</head>
High priority
(Chrome, Edge, Safari, Firefox)
Parser
HTML
JS
Network
2. Skrypty ładowane na końcu HTML
<script>
//inline script
</script>
<script src=„/script.js”>
</script>
</body>
High priority
(Chrome, Edge)Medium priority
(Safari, Firefox)
BBC: 284 kb
Amazon: 517 kb
Walmart: 200 kb
HTML
https://http.cat/404
19 kb
Parser
HTML
JS-1
Network
3. Skrypty ładowane asynchronicznie
<script async
src=„/script.js”></script>
High priority
(Chrome, Edge, Safari)Low priority
(Firefox)
JS-2
Parser
HTML
JS-1
Network
4. Skrypty „odroczone” (defer)
<script defer
src=„/script.js”></script>
High priority
(Chrome, Edge)Low priority
(Firefox, Safari)
JS-2
<script defer
src=„/script.js”></script>
<link rel=„preload”
href=„/script.js” as=„script”>
Podsumowanie
Async Defer
Wysoki priorytet.
Blokuje parser na
pobieranie i
przetwarzanie
Head
Średni / wysoki priorytet.
Blokuje parser na
pobieranie i przetwarzanie
Bottom of HTML
Niski priorytet.
Niezachowana kolejność skryptów.
Pobieranie JS nie blokuje parsera
HTML.
Blokuje parser na przetwarzanie JS.
Niski / wysoki priorytet.
Zachowana kolejność skryptów.
Nie blokuje parsera HTML.
Skrypty przetwarzane są zaraz po
złożeniu DOM.
CREDITS: This presentation template was created by
Slidesgo, including icons by Flaticon, infographics &
images by Freepik and illustrations by Stories
THANKS!
W razie pytań można mnie łapać na
LinkedIn i Twitterze!
Warto przeczytać
1. Scripts: async, defer (JavaScript.info, 2019)
2. Efficiently load JavaScript with defer and async (flaviocopes,2018)
3. Asynchronous vs Deferred JavaScript (Ire Aderinokun,2017)

More Related Content

What's hot

SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySzymon Słowik
 
semKRK #14 - Sebastian Heymann
semKRK #14 - Sebastian HeymannsemKRK #14 - Sebastian Heymann
semKRK #14 - Sebastian HeymannsemKRK
 
Permanentna inwigilacja. Podstawy analityki w WordPressie
Permanentna inwigilacja. Podstawy analityki w WordPressiePermanentna inwigilacja. Podstawy analityki w WordPressie
Permanentna inwigilacja. Podstawy analityki w WordPressieTomasz Kołkiewicz
 
semKRK#15 - Paweł Sokołowski
semKRK#15 - Paweł Sokołowski semKRK#15 - Paweł Sokołowski
semKRK#15 - Paweł Sokołowski semKRK
 
Przydatne narzędzia pozycjonera
Przydatne narzędzia pozycjoneraPrzydatne narzędzia pozycjonera
Przydatne narzędzia pozycjoneraEbooki za darmo
 
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...Krzysztof Marzec
 

What's hot (7)

SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawySEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
SEO na WordPressie - czemu zielone swiatelko w Yoast nie zalatwia sprawy
 
semKRK #14 - Sebastian Heymann
semKRK #14 - Sebastian HeymannsemKRK #14 - Sebastian Heymann
semKRK #14 - Sebastian Heymann
 
Permanentna inwigilacja. Podstawy analityki w WordPressie
Permanentna inwigilacja. Podstawy analityki w WordPressiePermanentna inwigilacja. Podstawy analityki w WordPressie
Permanentna inwigilacja. Podstawy analityki w WordPressie
 
semKRK#15 - Paweł Sokołowski
semKRK#15 - Paweł Sokołowski semKRK#15 - Paweł Sokołowski
semKRK#15 - Paweł Sokołowski
 
Data community gk 4.10.18
Data community gk 4.10.18Data community gk 4.10.18
Data community gk 4.10.18
 
Przydatne narzędzia pozycjonera
Przydatne narzędzia pozycjoneraPrzydatne narzędzia pozycjonera
Przydatne narzędzia pozycjonera
 
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...
Nowoczesne podejście do audytu SEO z wykorzystaniem Google Analytics - Think ...
 

Similar to Jak ładujemy skrypty JS i jakie ma to znaczenie?

Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr BuckiPROIDEA
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETBartlomiej Zass
 
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015Tomasz Dziuda
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Logicaltrust pl
 
Paleta możliwości web developera
Paleta możliwości web developeraPaleta możliwości web developera
Paleta możliwości web developeraTomasz Borowski
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?Brainhub
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceDawid Urbański
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaBartosz Romanowski
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkumsobiegraj
 

Similar to Jak ładujemy skrypty JS i jakie ma to znaczenie? (20)

Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NET
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Feo w-joomla
Feo w-joomlaFeo w-joomla
Feo w-joomla
 
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
 
Paleta możliwości web developera
Paleta możliwości web developeraPaleta możliwości web developera
Paleta możliwości web developera
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
AJAX - wdw1
AJAX - wdw1AJAX - wdw1
AJAX - wdw1
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressa
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
JMeter - narzędzie testera - notatki
JMeter - narzędzie testera - notatkiJMeter - narzędzie testera - notatki
JMeter - narzędzie testera - notatki
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 

Jak ładujemy skrypty JS i jakie ma to znaczenie?