Naučte se používat nápovědy pro zdroje jako preload, prefetch a preconnect k optimalizaci doby načítání webových stránek a zlepšení uživatelského zážitku globálně.
Zvýšení rychlosti webových stránek pomocí nápověd pro zdroje: Preload, Prefetch a Preconnect
V dnešním uspěchaném digitálním světě je rychlost webových stránek prvořadá. Uživatelé očekávají, že se webové stránky načtou rychle a okamžitě reagují. Pomalé doby načítání mohou vést ke špatnému uživatelskému zážitku, vyšší míře opuštění stránek a v konečném důsledku ke ztrátě obchodu. Nápovědy pro zdroje jsou výkonné nástroje, které mohou vývojářům pomoci optimalizovat doby načítání webových stránek tím, že prohlížeči sdělí, které zdroje jsou důležité a jak je prioritizovat. Tento článek zkoumá tři klíčové nápovědy pro zdroje: preload
, prefetch
a preconnect
a poskytuje praktické příklady implementace.
Pochopení nápověd pro zdroje
Nápovědy pro zdroje jsou direktivy, které instruují prohlížeč o zdrojích, které bude webová stránka v budoucnu potřebovat. Umožňují vývojářům proaktivně informovat prohlížeč o kritických zdrojích, což mu umožňuje je dříve načíst nebo se k nim připojit. To může výrazně zkrátit dobu načítání a zlepšit vnímaný výkon.
Tři primární nápovědy pro zdroje jsou:
- Preload: Načítá kritické zdroje potřebné pro počáteční načtení stránky.
- Prefetch: Načítá zdroje, které budou pravděpodobně potřeba pro budoucí navigace nebo interakce.
- Preconnect: Vytváří včasná připojení k důležitým serverům třetích stran.
Preload: Prioritizace kritických zdrojů
Co je Preload?
Preload
je deklarativní načítání, které vám umožňuje říci prohlížeči, aby načetl zdroj potřebný pro aktuální navigaci co nejdříve. To je zvláště užitečné pro zdroje, které prohlížeč objeví pozdě, jako jsou obrázky, fonty, skripty nebo styly načtené přes CSS nebo JavaScript. Preloadem těchto zdrojů můžete zabránit tomu, aby se staly render-blocking a zlepšit vnímanou rychlost načítání vašich webových stránek.
Kdy použít Preload
Použijte preload
pro:
- Fonty: Včasné načítání vlastních fontů může zabránit blikání nestylovaného textu (FOUT) nebo blikání neviditelného textu (FOIT).
- Obrázky: Prioritizace obrázků nad záhybem zajišťuje jejich rychlé načítání, čímž se zlepšuje počáteční uživatelský zážitek.
- Skripty a styly: Včasné načítání kritických souborů CSS nebo JavaScript zabraňuje render-blockingu.
- Moduly a Web Workers: Preload modulů nebo web workerů může zlepšit odezvu vaší aplikace.
Jak implementovat Preload
preload
můžete implementovat pomocí tagu <link>
v <head>
vašeho HTML dokumentu:
<link rel="preload" href="/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="/styles/critical.css" as="style">
<link rel="preload" href="/scripts/app.js" as="script">
<link rel="preload" href="/images/hero.jpg" as="image">
Vysvětlení:
rel="preload"
: Určuje, že prohlížeč by měl zdroj preloadovat.href="/path/to/resource"
: Adresa URL zdroje, který má být preloadován.as="type"
: Určuje typ zdroje, který se preloaduje (např. font, styl, skript, obrázek). Atribut `as` je povinný a zásadní pro to, aby prohlížeč správně upřednostnil a zpracoval zdroj. Použití správné hodnoty `as` zajišťuje, že prohlížeč použije správnou politiku zabezpečení obsahu (CSP) a odešle správný hlavičkuAccept
.type="mime/type"
: (Volitelné, ale doporučené) Určuje typ MIME zdroje. To pomáhá prohlížeči vybrat správný formát zdroje, zejména pro fonty.crossorigin="anonymous"
: (Požadováno pro fonty načtené z jiného původu) Určuje režim CORS pro požadavek. Pokud načítáte fonty z CDN, budete pravděpodobně potřebovat tento atribut.
Příklad: Preload fontu
Představte si, že máte vlastní font s názvem 'OpenSans' používaný na vašich webových stránkách. Bez preloadu prohlížeč objeví tento font až po parsování souboru CSS. To může způsobit zpoždění při renderování textu se správným fontem. Preloadem fontu můžete toto zpoždění eliminovat.
<link rel="preload" href="/fonts/OpenSans-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
Příklad: Preload kritického souboru CSS
Pokud vaše webové stránky mají kritický soubor CSS, který je nezbytný pro vykreslení počátečního zobrazení, jeho preload může výrazně zlepšit vnímaný výkon.
<link rel="preload" href="/styles/critical.css" as="style">
Nejlepší postupy pro Preload
- Prioritizujte kritické zdroje: Preloadujte pouze zdroje, které jsou nezbytné pro počáteční načítání stránky. Nadměrné používání preloadu může negativně ovlivnit výkon.
- Použijte správný atribut
as
: Vždy zadejte správný atributas
, aby prohlížeč zpracovával zdroj správně. - Zahrňte atribut
type
: Zahrňte atributtype
, aby prohlížeč pomohl vybrat správný formát zdroje. - Použijte
crossorigin
pro fonty z jiného původu: Při načítání fontů z jiného původu nezapomeňte zahrnout atributcrossorigin
. - Testujte výkon: Vždy otestujte dopad preloadu na výkon, abyste se ujistili, že skutečně zlepšuje doby načítání. Použijte nástroje jako Google PageSpeed Insights nebo WebPageTest k měření dopadu.
Prefetch: Anticipace budoucích potřeb
Co je Prefetch?
Prefetch
je nápověda pro zdroje, která prohlížeči říká, aby načítal zdroje, které budou pravděpodobně potřeba pro budoucí navigace nebo interakce. Na rozdíl od preload
, který se zaměřuje na zdroje potřebné pro aktuální stránku, prefetch
anticipuje další krok uživatele. To je zvláště užitečné pro zlepšení rychlosti načítání následných stránek nebo komponent.
Kdy použít Prefetch
Použijte prefetch
pro:
- Zdroje další stránky: Pokud víte, že uživatel pravděpodobně přejde na konkrétní stránku jako další, prefetchujte její zdroje.
- Zdroje pro interakce uživatelů: Pokud interakce uživatele spouští načítání konkrétních zdrojů (např. modální okno, formulář), prefetchujte tyto zdroje.
- Obrázky a aktiva na jiných stránkách: Preloadujte obrázky nebo aktiva používaná na jiných stránkách, které uživatel pravděpodobně navštíví.
Jak implementovat Prefetch
prefetch
můžete implementovat pomocí tagu <link>
v <head>
vašeho HTML dokumentu:
<link rel="prefetch" href="/page2.html">
<link rel="prefetch" href="/images/product.jpg">
<link rel="prefetch" href="/scripts/modal.js">
Vysvětlení:
rel="prefetch"
: Určuje, že prohlížeč by měl zdroj prefetchovat.href="/path/to/resource"
: Adresa URL zdroje, který se má prefetchovat.
Příklad: Prefetchování zdrojů další stránky
Pokud má vaše webová stránka jasný tok uživatele, například vícefázový formulář, můžete prefetchovat zdroje pro další krok, když je uživatel na aktuálním kroku.
<link rel="prefetch" href="/form/step2.html">
Příklad: Prefetchování zdrojů pro modální okno
Pokud vaše webová stránka používá modální okno, které při otevření načítá další zdroje, můžete tyto zdroje prefetchovat, abyste zajistili plynulý uživatelský zážitek.
<link rel="prefetch" href="/scripts/modal.js">
<link rel="prefetch" href="/styles/modal.css">
Nejlepší postupy pro Prefetch
- Používejte střídmě: Prefetch by se měl používat střídmě, protože může spotřebovávat šířku pásma a zdroje, i když uživatel prefetched zdroje nepotřebuje.
- Prioritizujte pravděpodobné navigace: Prefetchujte zdroje pro stránky nebo interakce, které se s největší pravděpodobností vyskytnou.
- Zvažte síťové podmínky: Prefetch je nejvhodnější pro uživatele se stabilním a rychlým internetovým připojením. Vyhněte se prefetchování velkých zdrojů pro uživatele s pomalým nebo měřeným připojením. Můžete použít Network Information API k detekci typu připojení uživatele a odpovídajícím způsobem upravit prefetchování.
- Monitorujte výkon: Sledujte dopad prefetch na výkon vašich webových stránek, abyste se ujistili, že přináší čistý přínos.
- Využijte dynamické prefetchování: Implementujte prefetching dynamicky na základě chování uživatele a dat analytiky. Například prefetchujte zdroje pro stránky, které často navštěvují uživatelé, kteří jsou aktuálně na aktuální stránce.
Preconnect: Vytvoření včasných připojení
Co je Preconnect?
Preconnect
je nápověda pro zdroje, která vám umožňuje vytvořit včasná připojení k důležitým serverům třetích stran. Vytvoření připojení zahrnuje několik kroků, včetně vyhledávání DNS, TCP handshake a TLS vyjednávání. Tyto kroky mohou přidat významnou latenci při načítání zdrojů z těchto serverů. Preconnect
vám umožňuje zahájit tyto kroky na pozadí, takže když prohlížeč potřebuje načíst zdroj ze serveru, je připojení již navázáno.
Kdy použít Preconnect
Použijte preconnect
pro:
- Servery třetích stran: Servery hostující fonty, CDN, API nebo jakékoli jiné zdroje, na kterých vaše webová stránka závisí.
- Často používané servery: Servery, ke kterým vaše webová stránka často přistupuje.
Jak implementovat Preconnect
preconnect
můžete implementovat pomocí tagu <link>
v <head>
vašeho HTML dokumentu:
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://cdn.example.com">
Vysvětlení:
rel="preconnect"
: Určuje, že by se prohlížeč měl k serveru preconnectovat.href="https://example.com"
: Adresa URL serveru, ke kterému se má preconnectovat.crossorigin
: (Volitelné, ale vyžadováno pro zdroje načtené s CORS) Určuje, že připojení vyžaduje CORS.
Příklad: Preconnect k Google Fonts
Pokud vaše webová stránka používá Google Fonts, preconnecting na https://fonts.gstatic.com
může výrazně snížit latenci načítání fontů.
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Atribut crossorigin
je zde zásadní, protože Google Fonts používá CORS k obsluze fontů.
Příklad: Preconnect k CDN
Pokud vaše webová stránka používá CDN k obsluze statických aktiv, preconnecting na hostname CDN může snížit latenci načítání těchto aktiv.
<link rel="preconnect" href="https://cdn.example.com">
Nejlepší postupy pro Preconnect
- Používejte uvážlivě: Preconnecting na příliš mnoho serverů může ve skutečnosti zhoršit výkon, protože prohlížeč má omezené zdroje pro navazování připojení.
- Prioritizujte důležité servery: Preconnectujte na servery, které jsou nejdůležitější pro výkon vašich webových stránek.
- Zvažte DNS-Prefetch: Pro servery, ke kterým se nemusíte plně preconnectovat, ale přesto chcete vyřešit DNS včas, zvažte použití
<link rel="dns-prefetch" href="https://example.com">
. DNS-prefetch provádí pouze vyhledávání DNS, které je méně náročné na zdroje než plný preconnect. - Testujte výkon: Vždy otestujte dopad preconnect na výkon, abyste se ujistili, že přináší čistý přínos.
- Kombinujte s dalšími nápovědami pro zdroje: Použijte preconnect ve spojení s preloadem a prefetch pro dosažení optimálního výkonu. Například preconnect na server, který hostuje vaše fonty, a poté preloadujte soubory fontů.
Kombinace nápověd pro zdroje pro optimální výkon
Skutečná síla nápověd pro zdroje spočívá v jejich strategickém kombinování. Zde je praktický příklad:
Představte si webovou stránku, která používá vlastní font hostovaný na CDN a načítá kritický soubor JavaScriptu.
- Preconnect k CDN: Vytvořte včasné připojení k CDN hostujícímu font a soubor JavaScriptu.
<link rel="preconnect" href="https://cdn.example.com" crossorigin>
- Preload fontu: Upřednostněte načítání fontu, abyste zabránili FOUT.
<link rel="preload" href="https://cdn.example.com/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
- Preload souboru JavaScriptu: Upřednostněte načítání souboru JavaScriptu, abyste zajistili, že bude k dispozici, když bude potřeba.
<link rel="preload" href="https://cdn.example.com/scripts/app.js" as="script">
Nástroje pro analýzu nápověd pro zdroje
Několik nástrojů vám může pomoci analyzovat efektivitu vašich nápověd pro zdroje:
- Google PageSpeed Insights: Poskytuje doporučení pro optimalizaci výkonu vašich webových stránek, včetně používání nápověd pro zdroje.
- WebPageTest: Umožňuje testovat výkon vašich webových stránek z různých umístění a síťových podmínek.
- Chrome DevTools: Panel Sítě v Chrome DevTools zobrazuje časování načítání zdrojů a může vám pomoci identifikovat příležitosti pro optimalizaci.
- Lighthouse: Automatizovaný nástroj pro zlepšení kvality webových stránek. Má audity pro výkon, přístupnost, progresivní webové aplikace, SEO a další.
Běžné úskalí a jak se jim vyhnout
- Nadměrné používání nápověd pro zdroje: Použití příliš mnoha nápověd pro zdroje může negativně ovlivnit výkon. Zaměřte se na nejdůležitější zdroje.
- Nesprávný atribut
as
: Použití špatného atributuas
pro preload může zabránit správnému načtení zdroje. - Ignorování CORS: Pokud nezahrnete atribut
crossorigin
při načítání zdrojů z jiného původu, může to způsobit chyby načítání. - Netestování výkonu: Vždy otestujte dopad nápověd pro zdroje na výkon, abyste se ujistili, že přinášejí čistý přínos.
- Nesprávné cesty: Dvojnásobně zkontrolujte a zajistěte, aby byly všechny cesty k souborům a adresy URL zadané pro nápovědy pro zdroje správné, jinak to bude mít za následek chybu.
Budoucnost nápověd pro zdroje
Nápovědy pro zdroje se neustále vyvíjejí a do specifikací prohlížečů se přidávají nové funkce a vylepšení. Zůstat v obraze s nejnovějším vývojem v oblasti nápověd pro zdroje vám může pomoci dále optimalizovat výkon vašich webových stránek. Například modulepreload
je novější nápověda pro zdroje speciálně navržená pro preload JavaScriptových modulů. Také atribut priority
pro nápovědy pro zdroje umožňuje zadat prioritu zdroje vzhledem k ostatním zdrojům. Podpora prohlížeče pro tyto funkce se stále vyvíjí, proto před jejich implementací zkontrolujte kompatibilitu.
Závěr
Nápovědy pro zdroje jsou výkonné nástroje pro optimalizaci dob načítání webových stránek a zlepšení uživatelského zážitku. Strategickým používáním preload
, prefetch
a preconnect
můžete proaktivně informovat prohlížeč o kritických zdrojích, snížit latenci a zlepšit vnímaný výkon vašich webových stránek. Nezapomeňte upřednostňovat kritické zdroje, používat nápovědy pro zdroje uvážlivě a vždy otestovat dopad změn na výkon. Dodržováním osvědčených postupů uvedených v tomto článku můžete výrazně zlepšit výkon svých webových stránek a poskytnout lepší zážitek pro své uživatele po celém světě.