Web Performance Expert at Studio Sidekicks (Bigger Picture)
Apr. 17, 2023•0 likes•131 views
1 of 78
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev Insider
Apr. 17, 2023•0 likes•131 views
Download to read offline
Report
Engineering
Praktyczne przykłady optymalizacji frontendu, które warto znać w 2023 roku. Od wydajności JS, metryki INP, rekalkulację styli po frameworki przyjazne wydajności.
6. Jestem Bartek Miś.
• CEO / CTO @ Studio Sidekicks (Bigger Picture)
• Full-stack developer ze szczególnym zamiłowaniem do frontendu
• Specjalizuję się w optymalizacji wydajności stron i aplikacji
17. INP
• Mierzy czas wykonania interakcji, aż do wizualnej zmiany na stronie
(kliknięcia, „tap” na mobile, wpisywania tekstu w inputach)
• Cel: sprawna responsywność strony;
użytkownik coś robi na stronie i szybko otrzymuje to, czego oczekuje
29. Jak optymalizować
• Pokazuj wizualną zmianę użytkownikowi tak szybko, jak to możliwe
• Zasobożerne operacje pozwól przeglądarce zaplanować (setTimeout)
• Wskaż użytkownikowi, że coś się wykonuje; otwórz menu od razu, a
zmiany w DOM zrób później
33. Jak optymalizować
• W momencie kliknięcia, rejestrujmy dane o kliknięciu
np. w LocalStorage
• Po załadowaniu docelowej strony, odczytujmy informacje z
LocalStorage i wysyłajmy eventy dopiero w tym momencie (idle)
50. Co wyzwala rekalkulację style/layout
• dodanie klasy CSS do elementu
• innerText
• o
ff
setWidth
• getBoundingClientRect
51. • Naprzemienne i częste operacje READ/WRITE na DOM
• Przykład: odczytywanie wartości poprzez getBoundingClientRect
i aktualizacja styli poprzez element.style.width
Layout Trashing
52. • unikaj sporej ilości node’ów DOM, zwłaszcza zagnieżdżonych
• unikaj inwalidacji globalnego CSS
CSSowe/DOMowe porady
• shadow DOM
• content-visibility (CSS containment)
• wymagające selektory (np. .className > a, [style*=])
• testuj interakcje
64. • To nie jest nowy framework, którego musimy się uczyć, znać nowy syntax
Astro
• Optymalizacyjny fundament pod strony contentowe, nadal pisząc
komponenty w ulubionym frameworku (React, Vue, Svelte)
• Podejście HTML-
fi
rst, zero-JS
77. • Wydajność interakcji na stronie = super ważna rzecz (click, tap, bfcache)
Podsumowanie
• Wąskie gardło (najczęściej) = JS
• INP
• Usuwajmy JS, gdzie można (HTML-
fi
rst)
• Astro, React Server Components, Qwik
• Inwalidacje style/layout - zwracaj na nie uwagę
• Realni użytkownicy i UX