Jah . Ăks neist on sisu eelkoormamine, mis on vajalik hiljem. CSS-i eelteenindamine, kogu lehe eelrenderdamine vĂ”i domeeninime lahendamine. Teeme kĂ”ik ette, et nĂ€idata tulemust kohe! KĂ”lab Ă€gedalt.
Veelgi Àgedam on see, et see on vÀga lihtne ellu viia. Viis mÀrgendit annavad brauserile kÀskluse eelteenindamiseks:
RÀÀgime lĂŒhidalt, mida need teevad ja millal neid kasutada.
Liikuge edasi: · · · ·
preload
<link rel= "preload"> ĂŒtleb brauserile, et laadida ja mĂ€lustada ressurss (nt skript vĂ”i stiilileht) vĂ”imalikult kiiresti. See on kasulik, kui ressursse vajatakse paar sekundit pĂ€rast lehe laadimist â ja soovite protsessi kiirendada.
Brauser ei tee ressursiga midagi pÀrast laadimist. Skripte ei tÀideta, stiililehti ei rakendata. Ressursse lihtsalt mÀlustatakse ja antakse kohe nÔudmisel.
SĂŒntaks
<link rel="preload" href="/style.css" as="style" /> href nÀitab ressursi asukohta, mida soovite alla laadida.
as vÔib olla mis tahes, mida brauseris alla laadida saab:
stylestiililehtede jaoks,scriptskriptide jaoks,fontfontide jaoks,fetchresursside jaoks, mis on alla laaditud kasutadesfetch()vÔikÀivitatakse,- tÀielik nimekiri vt. .
Oluline on mÀÀrata atribuut as â see aitab brauseril Ă”igesti prioriteete seadistada ja laadimist planeerida.
Millal kasutada
Kasutage eelkoormamist, kui ressursse vajatakse kohe. NĂ€iteks:
- Kohandatud fondid vÀlisest failist:
/* index.css */ @font-face { src: url('comic-sans.woff2') format('woff2'); }Vaikimisi
comic-sans.woff2hakkab laadima alles pÀrast laadimist ja tÔlgendamistindex.css. Et mitte oodata nii kaua, saab fondi laadida varem kasutades<link rel= "preload">:<link rel="preload" href="comic-sans.woff2" as="font" /> - Kui jagate oma stiile lÀhenemise alusel kahte ossa, kriitiline (vahetuks renderdamiseks) ja mitte kriitiline:
/* Inline kriitilised stiilid */Selle lÀhenemisega hakkavad mitte-kriitilised stiilid laadima alles pÀrast JavaScripti kÀivitamist, mis vÔib juhtuda mitu sekundit pÀrast renderdamist. Kasutage
<link rel= "preload">, et alustada laadimist varem:/* Manustatud kriitilised stiilid */
Ărge kuritarvitage eelkoormamist. Kui laadite kĂ”ike jĂ€rele, ei kiirenda see veebilehte maagiliselt, vastupidi, see takistab brauserit töö korralikult planeerimast.
Ărge segage seda eelkoormamisega. Ărge kasutage <link rel= "preload">, kui te ei vaja ressurssi kohe pĂ€rast lehe laadimist. Kui see on hiljem vajalik, nĂ€iteks jĂ€rgmisele lehekĂŒljele, siis kasutage <link rel= "prefetch">.
Ăksikasjad
See on kohustuslik silt brauseri töötlemiseks (kui see seda toetab), erinevalt kĂ”igist muudest siltidest , mis on seotud eelkoormamisega. Brauser peab laadima ressursi, mis on nĂ€idatud <link rel="preload">. Teistel juhtudel vĂ”ib see eelkoormamise tĂ€helepanuta jĂ€tta, nĂ€iteks kui ta töötab aeglasel ĂŒhendusel.
Prioriteedid. Erinevatele ressurssidele (stiilid, skriptid, fondid jne) mÀÀravad brauserid tavaliselt erinevad prioriteedid, et esmalt laadida kÔige olulisemad ressursid. Antud juhul mÀÀrab brauseri prioriteedi atribuut as. Chrome'i brauseris saate vaadata .
prefetch
<link rel= "prefetch"> palub brauseril laadida ja vahemÀlu ressursse (nt skripti vÔi stiililehte) taustal. Laadimine toimub madala prioriteediga, mistÔttu see ei sega olulisemaid ressursse. See on kasulik, kui ressurssi on jÀrgmise lehe peal vaja ja soovite selle eelnevalt vahemÀllu salvestada.
Siin ei tee brauser pÀrast laadimist ressursiga midagi. Skripte ei kÀivitata, stiililehti ei rakendata. Ressurss salvestatakse lihtsalt vahemÀllu ja antakse kohe pÀrast nÔudmist.
SĂŒntaks
<link rel="prefetch" href="/style.css" as="style" /> href nÀitab ressursi asukohta, mida soovite alla laadida.
as vÔib olla mis tahes, mida brauseris alla laadida saab:
stylestiililehtede jaoks,scriptskriptide jaoks,fontfontide jaoks,fetchresursside jaoks, mis on alla laaditud kasutadesfetch()vÔikÀivitatakse,- tÀielik nimekiri vt. .
Oluline on mÀÀrata atribuut as â see aitab brauseril Ă”igesti prioritiseerida ja laadimist planeerida.
Millal kasutada
Teistele lehtedele ressursside laadimiseks, kui teil on vajalik ressurss teisest lehelt, ja soovite eelnevalt laadida, et seejÀrel selle lehe renderdamist kiirendada. NÀiteks:
- Teil on veebipood ja 40% kasutajatest lahkub avalehelt tootelehe poole. Kasutage
<link rel= "prefetch">, laadides CSS- ja JS-faile toote lehtede renderdamiseks. - Teie rakendus on ĂŒhe lehega ja erinevad lehed laadivad erinevaid pakette. Kui kasutaja kĂŒlastab teatud lehte, saate eelnevalt laadida pakette kĂ”igilt lehtedelt, millele see viitab.
TÔenÀoliselt saab seda silti ohutult kasutada mis tahes mahus. Brauserid plaanivad tavaliselt prefetch'i vÀikese prioriteediga, nii et see ei hÀiri kedagi. Pea siiski meeles, et see kasutab kasutaja andmeid, mis vÔivad olla kulukad.
Ei sobi kiirete pĂ€ringute jaoks. Ărge kasutage <link rel= "prefetch">, kui ressurssi on vaja mĂ”ne sekundi jooksul. Sellistel juhtudel rakendage <link rel= "preload">.
Ăksikasjad
Valikuline silt. Brauser ei ole kohustatud jĂ€rgima seda juhist; ta vĂ”ib selle nĂ€iteks aeglases ĂŒhenduses ignoreerida.
Prioriteet Chrome'is. Chrome <link rel= "prefetch"> tavaliselt tÀidab minimaalsete prioriteetidega (vt. ), st pÀrast kogu muu laadimist.
preconnect
<link rel= "preconnect"> palub brauseril eelnevalt domeeniga ĂŒhenduda, kui soovite tulevikus ĂŒhenduse loomist kiirendada.
Brauser peaks ĂŒhenduse looma, kui ta laadib mingeid ressursse uue kolmanda osapoole domeenilt. NĂ€iteks kui ta laadib Google Fontse, React'i CDN-ilt vĂ”i kĂŒsib JSON vastust API-serverilt.
Uue ĂŒhenduse loomine vĂ”tab tavaliselt mitusada millisekundit. Seda tehakse ĂŒks kord, kuid see vĂ”tab ikkagi aega. Kui olete eelnevalt ĂŒhenduse loonud, siis sÀÀstate aega ja laadite selle domeeni ressursse kiiremini.
SĂŒntaks
<link rel= "preconnect" href="https://api.my-app.com" /> href nÀitab domeeninime, mille jaoks tuleb mÀÀrata IP-aadress. Seda vÔib anda eelneva tÀhisega (https://domain.com) vÔi ilma selleta (//domain.com).
Millal kasutada
Kasutage domeenide jaoks, mis vÔivad peagi vajalikud olla sealt olulise stiili, skripti vÔi pildi laadimiseks, kuid te ei tea veel ressursi URL-i. NÀiteks:
- Teie rakendus asub
my-app.comja teeb AJAX-pĂ€ringuidapi.my-app.com: te ei tea ette tĂ€pseid pĂ€ringuid, kuna need tehakse dĂŒnaamiliselt JS-ist. Siin on tĂ€iesti kohane kasutada sildi kasutamist domeeniga eelnevalt ĂŒhendamiseks. - Teie rakendus asub
my-app.comja kasutab Google Fontse. Need laaditakse kahes etapis: kĂ”igepealt laaditakse CSS-fail domeeniltfonts.googleapis.com, seejĂ€rel kĂŒsib see fail fontefonts.gstatic.com. Te ei saa teada, millised konkreetsed fonte failid onfonts.gstatic.comte peate, kuni laadite CSS-faili, seega saame enne vaid eelĂŒhenduse seadistada.
Kasutage seda sildi, et veidi kiirendada mĂ”nda kolmandat osalist skripti vĂ”i stiili. eelnevalt ĂŒhenduse seadistamise kaudu.
Ărge kuritarvitage.Ăhenduse seadistamine ja hoidmine on kulukas nii kliendile kui ka serverile. Kasutage seda silti maksimaalselt 4-6 domeeni jaoks.
Ăksikasjad
Valikuline siltBrauserid ei pruugi jĂ€rgida seda juhist ja vĂ”ivad selle ignoreerida, nĂ€iteks kui on juba loodud palju ĂŒhendusi vĂ”i mĂ”nes muus olukorras.
Mida hĂ”lmab ĂŒhenduse loomise protsess.KĂŒljest ĂŒhenduse loomiseks peab brauser tegema jĂ€rgmised toimingud:
- DNS-i lahendamine.Leidke serveri IP-aadress (
216.58.215.78) mÀÀratud domeeninime jaoks (google.com). - TCP-kĂ€epigistus.Pakettide vahetus (kliendist â serverisse â kliendisse), et alustada TCP-ĂŒhendust serveriga.
- TLS-i kĂ€epigistus (ainult HTTPS-i saitide jaoks).Kaks ringi paketivahetust (kliendist â serverisse â klient â serverisse â kliendisse), et alustada turvalist TLS-seanssi.
MÀrkus: HTTP/3 parendab ja kiirendab kÀepigistuse mehhanismi, kuid see on veel kaugel.
dns-prefetch
<link rel= "dns-prefetch"> palub brauseril eelnevalt domeeni DNS-i lahendada, kui kavatsete sellele peagi ĂŒhenduda ja soovite algset ĂŒhendust kiirendada.
Brauser peab mÀÀrama domeeni IP-aadressi, kui see tĂ”mbab uusi ressursse kolmandast osalisest domeenist. NĂ€iteks Google Fonts'i fonte, React'i CDN-ist vĂ”i kĂŒsides JSON-vastust API-serverilt.
Iga uue domeeni DNS-kirje lahendamine kestab tavaliselt umbes 20â120 ms. See mĂ”jutab vaid selle domeeni esimest ressursi laadimist, kuid esindab ikkagi viivitust. Kui DNS lahendatakse ette, siis sÀÀstame aega ja laadime ressursi kiiremini.
SĂŒntaks
<link rel= "dns-prefetch" href="https://api.my-app.com" /> href osutab domeeninimele, mille jaoks tuleb mÀÀrata IP-aadress. Saate anda koos eellĂŒhi (https://domain.com) vĂ”i ilma selleta (//domain.com).
Millal kasutada
Kasutage domeenide jaoks, mis vÔivad peagi vajalikud olla ressursside laadimiseks sealt, millest brauser ei tea ette. NÀiteks:
- Teie rakendus asub
my-app.comja teeb AJAX-pĂ€ringuidapi.my-app.com: te ei tea ette tĂ€pseid pĂ€ringuid, kuna need tehakse dĂŒnaamiliselt JS-ist. Siin on tĂ€iesti kohane kasutada sildi kasutamist domeeniga eelnevalt ĂŒhendamiseks. - Teie rakendus asub
my-app.com, ja kasutab Google Fonts'i fonte. Need laaditakse kahes etapis: esmalt laaditakse CSS-fail domeenilt.fonts.googleapis.com, seejĂ€rel kĂŒsib see fail fontefonts.gstatic.com. Te ei saa teada, millised konkreetsed fonte failid onfonts.gstatic.comte peate, kuni laadite CSS-faili, seega saame enne vaid eelĂŒhenduse seadistada.
Kasutage seda sildi, et veidi kiirendada mĂ”nda kolmandat osalist skripti vĂ”i stiili. eelnevalt ĂŒhenduse seadistamise kaudu.
Pange tÀhele sarnaseid omadusi.
<link rel= "dns-prefetch"/>ja<link rel= "preconnect">. Ăhes domÀÀris nende kasutamine tavaliselt ei ole mĂ”istlik:<link rel= "preconnect">juba sisaldab<link rel= "dns-prefetch"/>ja palju muud. Seda vĂ”ib Ă”igustada kahes olukorras:
- Soovite toetada vanu brausereid.
<link rel= "dns-prefetch" />toetatud .<link rel= "preconnect">oli mĂ”nda aega toetatud Chrome'is ja Firefoxis, kuid lisati Safari'sse alles versioonis 11.1 ja . Kui vajate nende brauserite toetamist, kasutage<link rel= "dns-prefetch" />varuvĂ”ttena<link rel= "preconnect">.- Soovite kiirendada ĂŒhendust enam kui 4-6 domeeniga. Sildi
<link rel= "preconnect">kasutamine rohkem kui 4-6 domeeni puhul ei ole soovitatav, kuna ĂŒhenduse loomine ja toetamine on kulukas operatsioon.<link rel= "dns-prefetch" />kasutab vĂ€hem ressursse, seega kasutage seda vajadusel.
Ăksikasjad
Valikuline silt. Brauseril ei ole kohustust jÀrgida seda juhist, seega ei pruugi see DNS-i lahendamist teostada, nÀiteks juhul, kui lehel on palju selliseid silte vÔi mingil muul juhul.
Mis on DNS. Igal serveril internetis on ainulaadne IP-aadress, mis nĂ€eb vĂ€lja nagu 216.58.215.78. Brauserid sisestavad tavaliselt aadressiribale saidi nime (nt google.com), ja DNS-serverid (Domeeninime sĂŒsteem) seostavad selle serveri IP-aadressiga (216.58.215.78).
Kuna IP-aadressi mÀÀramiseks peab brauser tegema pĂ€ringu DNS-serverile. See vĂ”tab 20-120 ms, kui ĂŒhendate uue kolmanda osapoole domeeniga.
DNS on vahemĂ€lus, kuigi mitte vĂ€ga usaldusvÀÀrselt. MĂ”ned opsĂŒsteemid ja brauserid salvestavad DNS-i pĂ€ringud: see sÀÀstab aega korduvate pĂ€ringute puhul, kuid vahemĂ€lule ei saa toetuda. Linuxis see tavaliselt ei tööta. Chrome'il on DNS-i vahemĂ€lu, kuid see kehtib ainult minuti. Windows salvestab DNS-i vastuseid viis pĂ€eva.
prerender
<link rel= "prerender"> palub brauseril laadida URL ja kuvada see nĂ€htamatul vahelehel. Kui kasutaja klĂ”psab lingil, peaks leht ilmuma kohe. See on kasulik, kui olete kindel, et kasutaja kĂŒlastab teatud lehte ja soovite selle kuvamist kiirendada.
Hoolimata selle sildi erakordsest tÔhususest (vÔi just selle tÔttu), on 2019. aastal <link rel= "prerender"> peamiselt brauserites halvasti toetatud. Lisateavet leiate .
SĂŒntaks
<link rel="prerender" href="https://my-app.com/pricing" /> href nÀitab URL-i, mille jaoks soovite renderdamise kÀivitada taustal.
Millal kasutada
Kui olete tĂ”eliselt kindel, et kasutaja lĂ€heb teatud leheleKui teil on "tunnel", mille kaudu 70% lehe A kĂŒlastajatest liiguvad lehele B, siis <link rel= "prerender"> aitab lehe A peal lehe B kiiresti kuvada.
Ărge kuritarvitage.Eelrenderdamine on vĂ€ga kulukas liikluse ja mĂ€lu osas. Ărge kasutage <link rel= "prerender"> rohkem kui ĂŒhe lehe jaoks.
Ăksikasjad
Valikuline siltBrauser ei ole kohustatud seda juhist jĂ€rgima ja vĂ”ib selle nĂ€iteks aeglases ĂŒhenduses vĂ”i vabade mĂ€lukohtade puudumise tĂ”ttu tĂ€helepanuta jĂ€tta.
MÀlu sÀÀstmise huvides Chrome ei tee tÀiendavat renderdamist, vaid . See tÀhendab, et Chrome laadib lehe ja kÔik selle ressursid, kuid ei tee renderdamist ega tÀida JavaScripti.
Firefox ja Safari ei toeta seda sildi ĂŒldse. See ei riku spetsifikatsiooni, kuna brauserid ei ole kohustatud seda juhist tĂ€itma; kuid see on siiski kahetsusvÀÀrne. oli avastatud seitsme aasta jooksul. On teateid, et Safari .
Elulookirjeldus
Kasutage:
<link rel= "preload"> â kui vajate ressurssi mĂ”ne sekundi jooksul<link rel= "prefetch"> â kui vajate ressurssi jĂ€rgmisele lehele<link rel= "preconnect"> â kui teate, et vajate varsti ressurssi, kuid ei tea veel selle tĂ€ielikku URL-i<link rel= "dns-prefetch"> â sarnaselt, kui teate, et vajate varsti ressurssi, kuid ei tea veel selle tĂ€ielikku URL-i (vana brauseri jaoks)<link rel= "prerender"> â kui olete kindel, et kasutajad liiguvad kindlale lehele ja soovite kiirendada selle kuvamist
Allikas: habr.com
