On . Ăks neist on sisule eelnevalt laadimine, mis on hiljem vajalik. CSS-i eelne laadimine, tĂ€iesti lehe eelne renderdamine vĂ”i domeeninime lahendamine. Teeme kĂ”ik ette Ă€ra ja seejĂ€rel nĂ€itame tulemust koheselt! KĂ”lab hĂ€sti.
Veelgi paremad uudised on see, et see on vÀga lihtne teostada. Viis sildi saadavad brauserile kÀsu eeltöödeks:
Koheselt tutvustame, mida need teevad ja millal neid kasutada.
Mine juurde: · · · ·
preload
<link rel= "preload"> ĂŒtleb brauserile, et laadida ja vahemĂ€lu varakult ressurssi (nt skripti vĂ”i stiililehte). See on kasulik, kui resurssi on vaja mĂ”ne sekundi pĂ€rast lehe laadimisest â ja soovite protsessi kiirendada.
Brauser ei tee pÀrast ressurssi laadimist selle kanssa midagi. Skripte ei kÀivitata, stiililehti ei rakendata. Ressurss lihtsalt salvestatakse ja antakse kohe nÔudmisel.
SĂŒntaks
<link rel="preload" href="/style.css" as="style" /> href osutab ressursile, mille soovite alla laadida.
as vÔib olla mis tahes, mida brauser suudab alla laadida:
stylestiililehtede jaoks,scriptskriptide jaoks,fontfontide jaoks,fetchressursside jaoks, mis on alla laaditudfetch()vÔiXMLHttpRequest,- tÀielik nimekiri vt. .
Oluline on mÀÀrata atribuudi as â see aitab brauseril Ă”igesti mÀÀrata prioriteete ja laadimisplaneerimist.
Millal kasutada
Kasutage eelnevat laadimist, kui resurssi on varsti vaja. NĂ€iteks:
- Kohandatud fondid vÀlisest failist:
/* index.css */ @font-face { src: url('comic-sans.woff2') format('woff2'); }Vaikimisi
comic-sans.woff2alustab laadimist alles pÀrast lehe laadimist ja parsimistindex.css. Et mitte nii kaua oodata, saab fondi eelnevalt laadida<link rel= "preload">:<link rel="preload" href="comic-sans.woff2" as="font" /> - Kui jagate oma stiile lÀhenemisega kaheks osaks, kriitiliseks (kohese renderdamise jaoks) ja mitte kriitiliseks:
/* Inlineeritud kriitilised stiilid */Selle lÀhenemisega hakkavad mitte-kriitilised stiilid laadima alles siis, kui JavaScript kÀivitub, mis vÔib toimuda mÔne sekundi pÀrast renderdamisest. Selle asemel, et oodata JS, kasutage
<link rel= "preload">, et alustada laadimist varakult:/* Inlineeritud kriitilised stiilid */
Ărge kuritarvitage eelnevat laadimist. Kui laadida kĂ”ike jĂ€rjest, ei kiirenda see saiti maagiliselt, vastupidi, see takistab brauseril korralikku tööplaneerimist.
Ărge segage seda eelnerimisega. Ărge kasutage <link rel= "preload">, kui te ei vaja ressurssi kohe pĂ€rast lehe laadimist. Kui see on hiljem vajalik, nĂ€iteks jĂ€rgmise lehe jaoks, kasutage <link rel= "prefetch">.
Ăksikasjad
See on kohustuslik silt brauseri tĂ€itmiseks (kui see selle toetab), erinevalt teistest siltidest, mis on seotud eelneva laadimisega. Brauser peab laadima ressurssi, mis on mÀÀratud <link rel="preload">. Muudel juhtudel vĂ”ib see eelmise laadimise ignoreerida, nĂ€iteks kui see töötab aeglasel ĂŒhendusel.
Prioriteedid. Erinevatele ressurssidele (stiilid, skripti, fondid jne) mÀÀravad brauserid tavaliselt erinevad prioriteedid, et laadida kÔige olulisemad ressursid kÔigepealt. Sel juhul mÀÀrab brauser prioriteedi atribuudi jÀrgi as. Chrome'i brauseri puhul saate vaadata .
prefetch
<link rel= "prefetch"> palub brauseril laadida ja vahemÀlu ressursse (nt skripti vÔi stiililehte) taustal. Laadimine toimub madala prioriteediga, seetÔttu ei sega see olulisemaid ressursse. See on kasulik, kui resurssi on vajalik jÀrgmisel lehel ja soovite seda eelnevalt vahemÀlu salvestada.
Siin ei tee brauser pÀrast ressurssi laadimist sellekaudu ka midagi. Skripte ei kÀivitata, stiililehti ei rakendata. Ressurss lihtsalt salvestatakse ja antakse kohe nÔudmisel.
SĂŒntaks
<link rel="prefetch" href="/style.css" as="style" /> href osutab ressursile, mille soovite alla laadida.
as vÔib olla mis tahes, mida brauser suudab alla laadida:
stylestiililehtede jaoks,scriptskriptide jaoks,fontfontide jaoks,fetchressursside jaoks, mis on alla laaditudfetch()vÔiXMLHttpRequest,- tÀielik nimekiri vt. .
Oluline on mÀÀrata atribuudi as â see aitab brauseril Ă”igesti mÀÀrata prioriteete ja laadimisplaneerimist.
Millal kasutada
Ressursside laadimiseks teistelt lehtedelt, kui soovite, et resurss teiselt lehelt laaditaks eelnevalt, et seejÀrel kiirendada selle lehe renderdamist. NÀiteks:
- Teie e-poes lahkub 40% kasutajatest peamise lehelt tootelehe peale. Kasutage
<link rel= "prefetch">, laadides CSS-i ja JS-failid tootelehtede renderdamiseks. - Teil on ĂŒhekpleheline rakendus, kus erinevad lehed laadivad erinevaid pakette. Kui kasutaja kĂŒlastab mĂ”nda lehte, on vĂ”imalik eelaadida pakette kĂ”igist nendest lehtedest, millele ta viitab.
Seda mÀrgendit vÔib tÔenÀoliselt kasutada ohutult mis tahes mahus.Pangad plaanivad tavaliselt eelaadimist madalaima prioriteediga, mistÔttu ei hÀiri see kedagi. Kuid pidage meeles, et see kasutab kasutaja andmesidekoguseid, mis vÔib maksma minna.
Ei sobi kiirete pĂ€ringute jaoks.. Ărge kasutage <link rel= "prefetch">kui ressurssi on vaja mĂ”ne sekundi jooksul. Sel juhul kasutage. <link rel= "preload">.
Ăksikasjad
Valikuline mĂ€rgend.Brauser ei pea jĂ€rgima neid juhiseid, ta vĂ”ib need ignoreerida, nĂ€iteks aeglase ĂŒhenduse korral.
Prioriteet Chrome'is.Chrome'is. <link rel= "prefetch"> tavaliselt tÀidetakse minimaalse prioriteediga (vt. ), see tÀhendab, et pÀrast muu sisu laadimist.
preconnect
<link rel= "preconnect"> palub brauseril eelnevalt ĂŒhendada domeeniga, kui soovite edaspidiseks ĂŒhenduse loomist kiirendada.
Brauser peab looma ĂŒhenduse, kui ta tĂ”mbab ressursse uue kolmanda osapoole domeenilt. NĂ€iteks, kui laadib Google Fontsi fonte, React'i CDN-ist vĂ”i kĂŒsib JSON vastust API serverilt.
Uue ĂŒhenduse loomine vĂ”tab tavaliselt paar sada millisekundit. See toimub ĂŒhe korra, kuid vĂ”tab siiski aega. Kui te loote ĂŒhenduse eelnevalt, sÀÀstate aega ja laadite selle domeeni ressursse kiiremini.
SĂŒntaks
<link rel= "preconnect" href="https://api.my-app.com" /> href osutab domeeninimele, mille jaoks IP-aadress tuleb kindlaks teha. Saate esitada selle prefiksiga (https://domain.com) vÔi ilma selleta (//domain.com).
Millal kasutada
Kasutage domeenide jaoks, mis vÔivad varsti vajalikud olla sealstyli, skripti vÔi pildi laadimiseks, kuid te ei tea veel ressursi URL-i. NÀiteks:
- Teie rakendus asub aadressil
my-app.comja teeb AJAX-pĂ€ringudapi.my-app.com: te ei tea ette konkreetseid pĂ€ringuid, kuna need tehakse dĂŒnaamiliselt JS-st. Siin on tĂ€iesti sobiv kasutada mĂ€rgendit domeeniga eelneva ĂŒhenduse loomiseks. - Teie rakendus asub aadressil
my-app.comja kasutab Google Fontsi fonte. Need laaditakse kahes etapis: esmalt laaditakse CSS-fail domeeniltfonts.googleapis.com, seejĂ€rel kĂŒsib see fail fonte aadressiltfonts.gstatic.com.Te ei saa teada, milliseid konkreetseid fonte teiltfonts.gstatic.com.vajate, kuni ei ole laaditud CSS-faili, seega saame eelnevaid ĂŒhendusi luua ainult ette.
Kasutage seda mĂ€rgendit, et veidi kiirendada mĂ”nda kolmandat skripti vĂ”i stiili eelneva ĂŒhenduse loomise kaudu.
Ărge ĂŒle pingutage.Ăhenduse loomine ja hoidmine on kulukas kui kliendile, nii ka serverile. Kasutage seda mĂ€rgendit maksimaalselt 4-6 domeeni jaoks.
Ăksikasjad
Valikuline mĂ€rgend.Brauser ei pea jĂ€rgima seda juhist ja vĂ”ib selle ignoreerida, nĂ€iteks kui on juba loodud liiga palju ĂŒhendusi vĂ”i muudel juhtudel.
Mida hĂ”lmab ĂŒhenduse loomise protsess.Selleks, et iga saidiga ĂŒhendust luua, peab brauser tĂ€itma jĂ€rgmised toimingud:
- DNS-i lahendamine.Leida IP-aadress serveri (
216.58.215.78) jaoks, mis on antud domeeninime (google.com). - TCP kĂ€epigistus.Pakettide vahetus (kliendilt â serverile â kliendile), et alustada TCP-ĂŒhendust serveriga.
- TLS kĂ€epigistus (ainult HTTPS-i saitidel).Kaks pakettide vahetuse ringi (kliendilt â serverile â kliendile â serverile â kliendile), et alustada turvalist TLS-seanssi.
MÀrkus: HTTP/3 parandab ja kiirendab kÀepigistusmehhanismi, kuid see on veel kaugel.
dns-prefetch
<link rel= "dns-prefetch"> palub brauseril eelnevalt teostada DNS-i lahendamise domeenile, kui te varsti ĂŒhendate ja soovite kiirendada algset ĂŒhendust.
Brauser peab kindlaks tegema domeeni IP-aadressi, kui ta tĂ”mbab mĂ”ned ressursid uue kolmanda osapoole domeenilt. NĂ€iteks, laadides Google Fontsi fonte, Reacti CDN-ist vĂ”i kĂŒsides JSON vastust API serverilt.
Iga uue domeeni jaoks vĂ”tab DNS-i kirje lahendamine tavaliselt aega 20â120 ms. See mĂ”jutab ainult selle domeeni esimest ressursi laadimist, kuid siiski esitades viivituse. Kui lahendus tĂ€idetakse eelnevalt, sÀÀstame aega ja laadime ressursse kiiremini.
SĂŒntaks
<link rel= "dns-prefetch" href="https://api.my-app.com" /> href osutab domeeninimele, mille jaoks IP-aadress tuleb kindlaks teha. Saate mÀÀrata selle prefiksiga (https://domain.com) vÔi ilma selleta (//domain.com).
Millal kasutada
Kasutage domeenide jaoks, mis vÔivad varsti vajalikud olla ressursside laadimiseks, millest brauser ei tea ette. NÀiteks:
- Teie rakendus asub aadressil
my-app.comja teeb AJAX-pĂ€ringudapi.my-app.com: te ei tea ette konkreetseid pĂ€ringuid, kuna need tehakse dĂŒnaamiliselt JS-st. Siin on tĂ€iesti sobiv kasutada mĂ€rgendit domeeniga eelneva ĂŒhenduse loomiseks. - Teie rakendus asub aadressil
my-app.com, ja kasutab Google Fontsi fonte. Need laaditakse kahes etapis: esmalt laaditakse CSS-fail domeeniltfonts.googleapis.com, seejĂ€rel kĂŒsib see fail fonte aadressiltfonts.gstatic.com.Te ei saa teada, milliseid konkreetseid fonte teiltfonts.gstatic.com.te vajate, kuni ei ole laaditud CSS-faili, seega saame eelnevaid ĂŒhendusi luua ainult ette.
Kasutage seda mĂ€rgendit, et veidi kiirendada mĂ”nda kolmandat skripti vĂ”i stiili eelneva ĂŒhenduse loomise kaudu.
Pange tÀhele, et sarnased omadused on
<link rel= "dns-prefetch"/>ja<link rel= "preconnect">. Nende kasutamine koos ĂŒhe domeeniga ei ole tavaliselt mĂ”istlik:<link rel= "preconnect">juba sisaldab.<link rel= "dns-prefetch"/>ja palju muud. See on pĂ”hjendatud kahes olukorras:
- Soovite toetada vanu brauserite.
<link rel= "dns-prefetch" />toetatakse .<link rel= "preconnect">oli mĂ”nda aega toetatud Chrome'is ja Firefoxis, kuid lisati Safari'sse alles versioonis 11.1 ja . Kui pead toetama neid brausereid, kasuta<link rel= "dns-prefetch" />varuvĂ”imalusena<link rel= "preconnect">.- Soovite kiirendada ĂŒhendust rohkem kui 4â6 domeeniga. Tagi
<link rel= "preconnect">ei soovitata kasutada rohkem kui 4â6 domeeni, kuna ĂŒhenduse loomine ja hoidmine on kulukas protsess.<link rel= "dns-prefetch" />kasutab vĂ€hem ressursse, seega kasuta seda vajadusel.
Ăksikasjad
Valikuline mÀrgend.. Brauser ei ole kohustatud jÀrgima seda juhist, seega vÔib see mitte teostada DNS-i lahendamist, kui lehel on palju selliseid tage vÔi mÔnes muus olukorras.
Mis on DNS. Igal serveril internetis on ainulaadne IP-aadress, mis nĂ€eb vĂ€lja nagu 216.58.215.78. Brauseri aadressivĂ€lja sisestatakse tavaliselt veebisaidi nimi (nt google.com), ja DNS-serverid (domeeninime sĂŒsteem) seostavad selle serveri IP-aadressiga (216.58.215.78).
Brauser peab IP-aadressi mÀÀramiseks tegema pĂ€ringu DNS-serverile. See vĂ”tab aega 20â120 ms, kui ĂŒhendate uue kolmanda osapoole domeeniga.
DNS-i vahemĂ€lu, kuigi mitte vĂ€ga usaldusvÀÀrselt. MĂ”ned opsĂŒsteemid ja brauserid vahemĂ€letavad DNS-pĂ€ringud: see sÀÀstab aega korduvate pĂ€ringute korral, kuid vahemĂ€lu pole usaldusvÀÀrne. Linuxis see tavaliselt ei toimi. Chrome'il on DNS-i vahemĂ€lu, kuid see kestab vaid minuti. Windows vahemĂ€letab DNS-vastuseid viie pĂ€eva jooksul.
prerender
<link rel= "prerender"> palub brauseril laadida URL-i ja kuvada see nĂ€htamatul vahekaardil. Kui kasutaja klĂ”psab lingil, peaks leht ilmuma kohe. See on kasulik, kui oled kindel, et kasutaja kĂŒlastab kindlat lehte ja soovid selle kuvamist kiirendada.
Hoolimata selle sildi erakordsest tÔhususest (vÔi seetÔttu), ei olnud see 2019. aastal <link rel= "prerender"> peamiseks brauserite poolt halvasti toetatud. Lisainformatsioon vaata. .
SĂŒntaks
<link rel="prerender" href="https://my-app.com/pricing" /> href osutab URL-ile, mille jaoks soovite taustal renderdamist kÀivitada.
Millal kasutada
Kui oled tĂ”eliselt kindel, et kasutaja liigub kindlale lehele. Kui sul on 'tunnel', kus 70% kĂŒlastajatest lehelt A lĂ€hevad lehele B, siis <link rel= "prerender"> lehel A aitab vĂ€ga kiiresti kuvada lehte B.
Ărge ĂŒle pingutage.. Eelrenderdamine on ÀÀrmiselt kulukas andmeside ja mĂ€lu osas. Ăra kasuta <link rel= "prerender"> rohkem kui ĂŒhe lehe jaoks.
Ăksikasjad
Valikuline mĂ€rgend.. Brauser ei ole kohustatud jĂ€rgima seda juhist ja vĂ”ib selle ignoreerida, nĂ€iteks aeglases ĂŒhenduses vĂ”i mĂ€luruumi ebapiisava suuruse korral.
MÀlu sÀÀstmiseks Chrome ei teosta tÀielikku renderdamist, ja . See tÀhendab, et Chrome laadib lehe ja kÔik selle ressursid, kuid ei teosta renderdamist ega kÀivita JavaScripti.
Firefox ja Safari ei toeta seda sildi ĂŒldse. See ei rikku spetsifikatsiooni, kuna brauserid ei ole kohustatud seda juhist jĂ€rgima; kuid siiski on see kahju. Firefoxis oli avastatud seitsme aasta jooksul. On teateid, et Safari .
KokkuvÔte
Kasutage:
<link rel= "preload"> â kui sul on vaja ressurssi paari sekundi jooksul<link rel= "prefetch"> â kui sul on vaja ressurssi jĂ€rgmise lehe jaoks<link rel= "preconnect"> â kui tead, et sul on peagi vaja ressurssi, kuid sa ei tea veel selle tĂ€pset URL-i<link rel= "dns-prefetch"> â sarnaselt, kui tead, et sul on peagi vaja ressurssi, kuid sa ei tea veel selle tĂ€pset URL-i (vana brauserite jaoks)<link rel= "prerender"> â kui oled kindel, et kasutajad liiguvad kindlale lehele, ja soovid selle kuvamist kiirendada
Allikas: habr.com
