SlideShare a Scribd company logo
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

More Related Content

What's hot

4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
Bartłomiej Miś
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
Sunil Yadav
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & More
Kanika Gera
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
Sho Okada
 
Angular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdfAngular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdf
JS Panther Pvt. Ltd.
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
Ritesh Mehrotra
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
React js
React jsReact js
React js
Rajesh Kolla
 
reactJS
reactJSreactJS
reactJS
Syam Santhosh
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
Imran Sayed
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting Started
Tracy Lee
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Masahito Zembutsu
 
learn what React JS is & why we should use React JS .
learn what React JS is & why we should use React JS .learn what React JS is & why we should use React JS .
learn what React JS is & why we should use React JS .
paradisetechsoftsolutions
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners
Varun Raj
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
 
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
Shahed Chowdhuri
 
React vs angular what to choose for your app
React vs angular what to choose for your appReact vs angular what to choose for your app
React vs angular what to choose for your app
Concetto Labs
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
MicroPyramid .
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
Akshay Mathur
 

What's hot (20)

4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & More
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
 
Angular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdfAngular VS React The Battle of Best Front End Frameworks.pdf
Angular VS React The Battle of Best Front End Frameworks.pdf
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
React js
React jsReact js
React js
 
reactJS
reactJSreactJS
reactJS
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
 
React Native - Getting Started
React Native - Getting StartedReact Native - Getting Started
React Native - Getting Started
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
learn what React JS is & why we should use React JS .
learn what React JS is & why we should use React JS .learn what React JS is & why we should use React JS .
learn what React JS is & why we should use React JS .
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
 
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
 
React vs angular what to choose for your app
React vs angular what to choose for your appReact vs angular what to choose for your app
React vs angular what to choose for your app
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 

Similar to Optymalizacja frontendu w 2022

Wydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjneWydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjne
Bartłomiej Miś
 
Lets Flex the WEB 4
Lets Flex the WEB 4Lets Flex the WEB 4
Lets Flex the WEB 4MediaFrame
 
Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
Bartłomiej Miś
 
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
SharePoint 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 .NET
Wydawnictwo 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.js
The 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
 
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
Fundacja Rozwoju Branży Internetowej Netcamp
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
Wydawnictwo 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 Androidzie
Daftcode
 
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
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
Paweł Tekliński
 
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
Wydawnictwo 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 przypadku
Michal 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 kodu
The Software House
 
C++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalistyC++ Builder 6. Vademecum profesjonalisty
C++ Builder 6. Vademecum profesjonalisty
Wydawnictwo 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
 

Similar to Optymalizacja frontendu w 2022 (20)

Wydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjneWydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjne
 
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