SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
SPOSOBY, KTÓRYCH NIE ZNASZ, A POWINIENEŚ
WYDAJNOŚĆ
FRONTENDUW2022
CZEŚĆ,
JESTEMBARTEK
✓ Co-founder, CTO @ Studio Sidekicks
(Bigger Picture)
✓ Full-stack developer, miłośnik frontendu
✓ Web Performance Expert
(webdevinsider.pl | pagespeedinsider.com)
✓ Twórca szkolenia Zoptymalizowany Frontend
www.studiosidekicks.com www.biggerpicture.agency
LIVE: Wydajność frontendu w 2022
NIEDASIĘ…
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
„NIEDASIĘ”,BONIEROZUMIESZPRZEGLĄDARKI
✓ TCP Slow Start, zasada „14kb”
✓ HTML, CSS
✓ DOM, CSSOM
LIVE: Wydajność frontendu w 2022
✓ Javascript
✓ Drzewo renderowania
✓ Główny wątek przeglądarki
✓ Ładowanie i renderowanie
NACZYMSIĘSKUPIĆ
LIVE: Wydajność frontendu w 2022
Źródło obrazka: https://livebook.manning.com/
Abovethefold
Belowthefold
Background
POMÓŻ
PRZEGLĄDARCE
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
✓ <head> jest największym blokującym renderowanie elementem każdej
strony (skrypty JS, style CSS i ich oddziaływanie)
✓ Kolejność ładowanych zasobów jest mega istotna
LIVE: Wydajność frontendu w 2022
✓ Przeglądarka sama stara się najlepiej zadecydować kiedy i co
załadować
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
✓ Kolejność zależy od typu zasobu [CSS, font, script, obrazek, 3rd party], miejsca
lub kolejności umiejscowienia w dokumencie HTML, od <link> preload, async/
defer dla skryptów)
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
https://csswizardry.com/ct/
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
https://csswizardry.com/ct/
ABOVETHEFOLD:<HEAD>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:<HEAD>
✓ Jeśli macie SPA lub prosty Landing Page:
wstrzykujcie cały CSS do <head> poprzez <style>!
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:LCP
✓ Obrazek umieszczany przez CSS background-style: image()
jest zawsze wolniejszy niż umieszczony poprzez <img>
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:LCP
✓ Stosuj <link> preload, ale…
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:LCP
LIVE: Wydajność frontendu w 2022
✓ Priority Hints:
zwiększ priorytet tego, co ważne lub zmniejsz tego, co mniej ważne
ABOVETHEFOLD:LCP
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:LCP
LIVE: Wydajność frontendu w 2022
ABOVETHEFOLD:LCP
LIVE: Wydajność frontendu w 2022
https://web.dev/priority-hints/
ABOVETHEFOLD
LIVE: Wydajność frontendu w 2022
✓ Przeglądarki ładują tekst i obrazki w tym samym czasie - synchronicznie
ABOVETHEFOLD
LIVE: Wydajność frontendu w 2022
✓ Przeglądarki ładują tekst i obrazki w tym samym czasie - synchronicznie
POPRAWAKOLEJNOŚCIŁADOWANYCHZASOBÓW
MOŻEWPŁYNĄĆPOZYTYWNIE
NA„TRUDNEELEMENTY”NASTRONIE,
KTÓRYCH„NIEDASIĘ”ZOPTYMALIZOWAĆ.
LIVE: Wydajność frontendu w 2022
BACKGROUND:3RDPARTIES
✓ Skrypty trackujące (np. Google Analytics)
LIVE: Wydajność frontendu w 2022
✓ Obciążenie głównego wątku
(3rd parties + cała reszta strony —> wysokie TTI + TBT )
✓ Czat
✓ Reklamy (np. Google Adsense)
✓ Tag Managery
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
https://github.com/BuilderIO/partytown
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
https://github.com/BuilderIO/partytown
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
BACKGROUND:3RDPARTIES
LIVE: Wydajność frontendu w 2022
<FSCRIPT>
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
https://github.com/biggerpicturestudio/delaying-3rd-parties
LIVE: Wydajność frontendu w 2022
https://www.instawierszyki.pl/
BELOWTHEFOLD
✓ Lazy loading obrazków, iframe’ów…
LIVE: Wydajność frontendu w 2022
✓ Lazy rendering
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
✓ Pobieramy mniej HTML
LIVE: Wydajność frontendu w 2022
✓ Skupiamy się na szybszym wyświetleniu przestrzeni Above The Fold
✓ Mniejszy HTML = szybsze tworzenie drzewa renderowania (DOM + CSSOM)
✓ Mniej uruchamianego Javascriptu na początku, mniej nasłuchiwania
elementów DOM od samego początku
✓ Korzystne dla TTI i TBT
✓ Mniej obciążany główny wątek przeglądarki
BELOWTHEFOLD:LAZYRENDERING
✓ Mniej pominiętych klatek w procesie renderowania (dropped frames)
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
ZRÓBTOSAM!
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
FETCH+JSEXECUTION
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
LIVE: Wydajność frontendu w 2022
DEMO
LIVE: Wydajność frontendu w 2022
FETCH+JSEXECUTION
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
PRZED
LIVE: Wydajność frontendu w 2022
PO
PRZED
LIVE: Wydajność frontendu w 2022
PO
LIVE: Wydajność frontendu w 2022
KROKDALEJ…
✓ Network Information API
LIVE: Wydajność frontendu w 2022
KROKDALEJ…
LIVE: Wydajność frontendu w 2022
KROKDALEJ…
CONNECTION-AWARE
LIVE: Wydajność frontendu w 2022
✓ Serwowanie contentu w zależności od jakości połączenia
internetowego (np. obrazek zamiast video)
✓ Tryb oszczędnościowy smartfona —> np. bez serwowania animacji
LIVE: Wydajność frontendu w 2022
BACKEND
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
BELOWTHEFOLD:LAZYRENDERING
LIVE: Wydajność frontendu w 2022
✓ Przykład zastosowania: sekcje below the fold
(uwaga na nagłówki i Accessibility!); footer
PREFETCHONHOVER
LIVE: Wydajność frontendu w 2022
✓ Szybsza nawigacja między podstronami
✓ Turbolinks, Barba.js
PODSUMOWANIE
✓ Pomóż przeglądarce
LIVE: Wydajność frontendu w 2022
✓ Kolejność ładowanych zasobów ma ogromne znaczenie (testuj,
reorganizuj kolejność, priorytetyzuj to, co najważniejsze)
✓ Skup się na przestrzeni Above The Fold (mało zasobów, LCP)
✓ Ładuj leniwie zasoby Below The Fold
✓ Renderuj leniwie to, co Below The Fold
✓ Skrypty zewnętrzne —>
opóźniaj lub przenieś do web workera (TTI, TBT)
✓ Testuj & kombinuj. Zawsze coś się da.
WEBDEVINSIDER.PL/4DEVELOPERS-2022
LIVE: Optymalizacja frontendu

Contenu connexe

Tendances

ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right MixBob Paulin
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자Yurim Jin
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation洪 鹏发
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기정민 안
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to ReactRob Quick
 
스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기Sunyoung Shin
 
DB Project - Gmarket
DB Project - Gmarket DB Project - Gmarket
DB Project - Gmarket Han Sung Kim
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
Neo4j: Import and Data Modelling
Neo4j: Import and Data ModellingNeo4j: Import and Data Modelling
Neo4j: Import and Data ModellingNeo4j
 
Hibernate Basic Concepts - Presentation
Hibernate Basic Concepts - PresentationHibernate Basic Concepts - Presentation
Hibernate Basic Concepts - PresentationKhoa Nguyen
 
React JS and why it's awesome
React JS and why it's awesomeReact JS and why it's awesome
React JS and why it's awesomeAndrew Hull
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g noble Bajoli
 
Introduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace ITIntroduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace ITnamespaceit
 

Tendances (20)

ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right Mix
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
 
Rendering engine
Rendering engineRendering engine
Rendering engine
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
React js basics
React js basicsReact js basics
React js basics
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기
 
DB Project - Gmarket
DB Project - Gmarket DB Project - Gmarket
DB Project - Gmarket
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
C++ api design 품질
C++ api design 품질C++ api design 품질
C++ api design 품질
 
Neo4j: Import and Data Modelling
Neo4j: Import and Data ModellingNeo4j: Import and Data Modelling
Neo4j: Import and Data Modelling
 
Hibernate Basic Concepts - Presentation
Hibernate Basic Concepts - PresentationHibernate Basic Concepts - Presentation
Hibernate Basic Concepts - Presentation
 
React JS and why it's awesome
React JS and why it's awesomeReact JS and why it's awesome
React JS and why it's awesome
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
Introduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace ITIntroduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace IT
 

Similaire à Optymalizacja frontendu w 2022

Czy powinniśmy się przejmować Core Web Vitals?
Czy powinniśmy się przejmować Core Web Vitals?Czy powinniśmy się przejmować Core Web Vitals?
Czy powinniśmy się przejmować Core Web Vitals?Bartłomiej Miś
 
Lets Flex the WEB 4
Lets Flex the WEB 4Lets Flex the WEB 4
Lets Flex the WEB 4MediaFrame
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentSharePoint Saturday Warsaw
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćmonterail
 
Visual Basic 2005. Wprowadzenie do programowania w .NET
Visual Basic 2005. Wprowadzenie do programowania w .NETVisual Basic 2005. Wprowadzenie do programowania w .NET
Visual Basic 2005. Wprowadzenie do programowania w .NETWydawnictwo Helion
 
Jak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.jsJak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.jsThe Software House
 
Silverlight z bliska i na wylot
Silverlight z bliska i na wylotSilverlight z bliska i na wylot
Silverlight z bliska i na wylotMichal Zylinski
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
 
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...4Developers: Make your Wordpress Themes faster by using a bunch of great tool...
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...PROIDEA
 
Kivy na Androidzie
Kivy na AndroidzieKivy na Androidzie
Kivy na AndroidzieDaftcode
 
Portfolio i referencje krakweb [2017.03]
Portfolio i referencje krakweb [2017.03]Portfolio i referencje krakweb [2017.03]
Portfolio i referencje krakweb [2017.03]Krakweb
 
Adobe Premiere 6.5. Podręcznik montażysty
Adobe Premiere 6.5. Podręcznik montażystyAdobe Premiere 6.5. Podręcznik montażysty
Adobe Premiere 6.5. Podręcznik montażystyWydawnictwo Helion
 
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuTechnologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuMichal Lukaszewski
 
Visual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlVisual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlPrzemysław Wolny
 
Od Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki koduOd Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki koduThe Software House
 
C++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalistyC++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalistyWydawnictwo Helion
 
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowę
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowęTekst na mowę online: Szybka i łatwa konwersja tekstu na mowę
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowęAI Letter Writer For class 10
 

Similaire à Optymalizacja frontendu w 2022 (20)

Czy powinniśmy się przejmować Core Web Vitals?
Czy powinniśmy się przejmować Core Web Vitals?Czy powinniśmy się przejmować Core Web Vitals?
Czy powinniśmy się przejmować Core Web Vitals?
 
Lets Flex the WEB 4
Lets Flex the WEB 4Lets Flex the WEB 4
Lets Flex the WEB 4
 
Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
Visual Basic 2005. Wprowadzenie do programowania w .NET
Visual Basic 2005. Wprowadzenie do programowania w .NETVisual Basic 2005. Wprowadzenie do programowania w .NET
Visual Basic 2005. Wprowadzenie do programowania w .NET
 
Jak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.jsJak poprawić Core Web Vitals w aplikacji Next.js
Jak poprawić Core Web Vitals w aplikacji Next.js
 
Silverlight z bliska i na wylot
Silverlight z bliska i na wylotSilverlight z bliska i na wylot
Silverlight z bliska i na wylot
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...4Developers: Make your Wordpress Themes faster by using a bunch of great tool...
4Developers: Make your Wordpress Themes faster by using a bunch of great tool...
 
Kivy na Androidzie
Kivy na AndroidzieKivy na Androidzie
Kivy na Androidzie
 
Portfolio i referencje krakweb [2017.03]
Portfolio i referencje krakweb [2017.03]Portfolio i referencje krakweb [2017.03]
Portfolio i referencje krakweb [2017.03]
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
Adobe Premiere 6.5. Podręcznik montażysty
Adobe Premiere 6.5. Podręcznik montażystyAdobe Premiere 6.5. Podręcznik montażysty
Adobe Premiere 6.5. Podręcznik montażysty
 
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuTechnologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadku
 
Visual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlVisual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysql
 
Od Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki koduOd Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki kodu
 
C++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalistyC++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalisty
 
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowę
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowęTekst na mowę online: Szybka i łatwa konwersja tekstu na mowę
Tekst na mowę online: Szybka i łatwa konwersja tekstu na mowę
 

Optymalizacja frontendu w 2022