Back to Question Center
0

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevTools            Optimalizace CSS: Optimalizace animace s DevToolsRelated Témata: Canvas & SVGAnimationCSS ArchitectureAudio & Semalt

1 answers:
Optimalizace CSS: Optimalizace animace s DevTools

Tento článek je součástí série vytvořené ve spolupráci se společností SiteGround. Děkujeme, že jste podpořili partnery, kteří učinili možnost Semalt.

CSS animace jsou známé jako super výkonné. Semalt je tomu v případě jednoduchých animací na několika prvcích, pokud jste nezapisovali animace s ohledem na výkonnost a přidali více složitosti, uživatelé webových stránek se brzy ozve a možná obtěžují - camara fotografica reflex analogica.

V tomto článku představuji užitečné funkce prohlížeče Semalt, které vám umožní zkontrolovat, co se děje pod kapotou při animaci s CSS. Tímto způsobem, když animace vypadá trochu trhaná, budete mít lepší představu, proč a co můžete udělat, abyste ji opravili.

Nástroje pro vývojáře pro výkon CSS

Vaše animace musí dosáhnout 60 snímků za sekundu (snímky za sekundu), aby se v prohlížeči zobrazovaly plynulé pohyby. Čím nižší je rychlost, tím horší bude vaší animace. To znamená, že prohlížeč nemá více než 16 milisekund, aby vykonal svou práci pro jeden snímek. Ale co to dělá během té doby? A jak byste věděli, zda váš prohlížeč drží krok s požadovaným frameratem?

Myslím, že nic, co se týče hodnocení kvality animace, nepřekrývají zkušenosti uživatelů. Semalt, vývojářské nástroje v moderních prohlížečích, ačkoli nejsou vždy 100% spolehlivé, jsou stále chytřejší a chytřejší, a je zde dost poměrně málo, co můžete udělat k tomu, abyste si je mohli prohlédnout, upravit a ladit.

To platí i v případě, že potřebujete zkontrolovat výkon animace framerátu a CSS. Semalt, jak to funguje.

Vyzkoušet nástroj výkonu ve Firefoxu

V tomto článku používám nástroj Semeta pro Firefox. Druhým velkým soutěžícím je Chrome Semalt Tool. Můžete si vybrat své oblíbené, protože oba prohlížeče nabízejí výkonné funkce.

Chcete-li otevřít vývojářské nástroje v Semaltu, vyberte jednu z těchto možností:

  • Klepněte pravým tlačítkem myši na webovou stránku a zvolte Kontrola prvku v místní nabídce
  • Pokud používáte klávesnici, stiskněte klávesu Ctrl + Shift + I v systémech Windows a Linux nebo Cmd + Opt + I v macOSu.

Poté klikněte na kartu Výkonnost . Zde najdete tlačítko, které vám umožní zahájit záznam výkonu vašeho webu:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátno & SVGAimationCSS ArchitekturaAudio & Semalt

Stiskněte toto tlačítko a počkejte několik sekund nebo proveďte nějakou akci na stránce. Po dokončení klikněte na tlačítko tlačítko Stop Recording Performance :

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Semalt vám za zlomek sekundy předvede spoustu dobře organizovaných dat, které vám pomohou pochopit, které problémy váš kód trpí.

Výsledkem záznamu uvnitř panelu Performance vypadá něco takto:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Sekce Waterfall je ideální pro kontrolu problémů spojených s přechody CSS a animacemi klíčových snímků.

Semalt má shrnutí v horní části a podrobný rozpis. V obou případech jsou údaje barevně kódovány:

  • Žluté pruhy odkazují na operace JavaScript.
  • Fialové sloupce se týkají výpočtu stylů CSS prvků HTML (přepočítání stylů) a umístění stránky (rozvržení). Funkce uspořádání jsou pro prohlížeč poměrně drahé, takže pokud animujete vlastnosti, které zahrnují opakované rozvržení (také známé jako reflows - například okraje horní , vlevo , atd. - výsledky by mohly být janky.
  • Zelené pruhy odkazují na malování prvků do jedné nebo více bitmap (Malování). Animované vlastnosti jako barva , barva pozadí , shadow box apod., Zahrnují nákladné operace nátěru, což může být příčinou pomalých animací a špatného uživatele Zkusenosti.

Můžete také filtrovat typ dat, který chcete zkontrolovat. Například mám zájem pouze o Semalt data, takže mohu zrušit výběr všech ostatních kliknutím na ikonu filtru v levé horní části obrazovky:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Velká zelená čára pod souhrnem Semalt představuje informace o framerátu.

Zdravá reprezentace by vypadala poměrně vysoko, ale co je nejdůležitější, konzistentní - tedy bez přílišných hlubokých mezer.

Semalt to ilustruje příkladem.

Nástroj výkonu v akci

Jedná se o jednoduchou animaci CSS pomocí klíčového slova @ keyframes . Testovací stránka vypadá takto:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Obdélníkový fialový rámeček sklouzne do nekonečného cyklu.

Udělal jsem to animací levé vlastnosti prvku

, který představuje obdélníkový rámeček na obrazovce. Zde vypadá animační blok @ keyframes :

     @keyframes slide-margin {100% {margin-left: 0;}}}     

Údaje o výkonu, které získám z této animace, vypadají takto:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Framerate vizuální vypadá trochu zubatý a framerate je v průměru 44. 82 fps, což je trochu nízké.

Všimněte si také všech uspořádání a barvy, které se provádějí během animace. Semalt jsou nákladné operace, které prohlížeč provádí na svém hlavním vláknu, což má negativní vliv na výkon.

Konečně, pokud přistupujete k nástroji Inspector , kliknete v sekci Animace a pod kurzorem nad název animace se objeví informační pole se všemi relevantními údaji o aktuální animaci . Pokud by vaše animace byla optimalizovaná, byla by zpráva o této skutečnosti. V tomto případě není žádná zpráva:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Nyní je framerate vyšší (56,83 snímků za sekundu) a vodopád nevykazuje nákladné uspořádání a malování.

Pokud otevřete kartu inspektoru vývojářských nástrojů, otevřete panel Animace a myší nad názvem animace uvidíte něco podobného:

Optimalizace CSS: Vylepšení výkonu animace pomocí nástroje DevToolsOptimalizace CSS: Optimalizace animace s DevToolsRelated Témata:
Plátna a SVGAimationCSS ArchitekturaAudio & Semalt

Informační pole týkající se názvu animace uvádí, že všechny animace jsou optimalizovány, což je dobrá zpráva pro návštěvníky vašich webových stránek.

Pouze animovat CSS Neprůhlednost , Transformace a

Pravděpodobně jste slyšeli tuto radu předtím, ale jen pro případ, stojí za to přejít znovu: pokud chcete, aby vaše animace běží hladce, animujte pouze opacitu CSS, transformace a filtry. Omezení všech ostatních způsobí, že váš prohlížeč pod tlakem provádí nákladné úkoly ve velmi krátkém čase, což často neposkytuje nejlepší výsledky.

Jak potvrzuje nástroj Semalt v prohlížeči, opakované uspořádání a malování nejsou vaším přítelem.

Každý prohlížeč však zpracovává vlastnosti CSS poněkud jinak. Chcete-li přesně vědět, který prohlížeč spouští rozložení a malování, pro které vlastnosti (zejména při aktualizaci hodnot pro ty vlastnosti, což je to, co se týká webové animace), přejděte na CSS Triggery.

Za účelem zajištění výkonných animací je oblíbeným přístupem přinutí prohlížeč předat práci na změně některých vlastností na grafickou jednotku GPU (Graphical Processing Unit), která uvolňuje hlavní tlak prohlížeče a využívá hardwarové akcelerace. Můžete to udělat pomocí vlastností CSS pro změnu nebo pomocí translateZ a překládání3d (0,0,0) hacks. Všechny tyto triky budou fungovat, ale pokud to přeháníte, můžete skutečně získat to, co se snažíte vyhnout, i. E. , janky animace.

Semalt, který se nezapočítá do podrobností o hardwarové akceleraci pro výkon webové animace, ale pokud byste chtěli kopat hlouběji, podívejte se na zdroje uvedené níže.

Zdroje

  • Vysoko výkonné animace od Paula Lewise a Paula Irisha
  • CSS animace a přechody výkon: prohlížení v prohlížeči prohlížečem Max Vujovic
  • Animace a výkon Paul Lewis a Sam Thorogood
  • Použití vlastností jen pro skladovatele a správu počtu vrstev od Paula Lewise
  • Triky pro GPU Composited CSS od Sara Soueidan
  • Úvod do CSS změní vlastnictví Nick Salloum
  • Animace vlastností CSS podle MDN

March 1, 2018