he nui na nui nā ala e hoʻomaikaʻi ai i ka hana pūnaewele. ʻO kekahi o lākou ka hoʻouka mua ʻana i nā ʻike e pono ai ma hope. ʻO ka hoʻoponopono mua ʻana o CSS, ka ʻaoʻao piha ma mua o ka hoʻoholo ʻana i ka inoa inoa. Hana mākou i nā mea āpau ma mua, a laila hōʻike koke i ka hopena! He kani maikaʻi.
ʻO ka mea ʻoi aku ka maikaʻi o ka hoʻokō maʻalahi. ʻElima mau hōʻailona hāʻawi i ka polokalamu kele pūnaewele i kauoha e hana i nā hana mua:
<link rel= "preload"> haʻi i ka polokalamu kele pūnaewele e hoʻouka a hūnā i kahi kumuwaiwai (e like me ka palapala a i ʻole ka pepa style) i ka hiki. Pono kēia i ka wā e pono ai kahi kumuwaiwai i kekahi mau kekona ma hope o ka hoʻouka ʻana o ka ʻaoʻao - a makemake ʻoe e wikiwiki i ke kaʻina hana.
ʻAʻole hana ka polokalamu kele pūnaewele me ka waiwai ma hope o ka hoʻouka ʻana. ʻAʻole i hoʻokō ʻia nā palapala, ʻaʻole hoʻohana ʻia nā ʻano pepa. Hoʻopili wale ʻia ka punawai a loaʻa koke ke noi.
ma ka paʻamau comic-sans.woff2 e hoʻomaka ana e hoʻouka wale ma hope o ka hoʻoiho ʻana a me ka hoʻoiho ʻana index.css. I mea e pale ai i ka kali lōʻihi, hiki iā ʻoe ke hoʻoiho i ka font ma mua o ka hoʻohana ʻana <link rel= "preload">:
Me kēia ala, e hoʻomaka ana nā ʻano koʻikoʻi ʻole i ka hoʻouka ʻana i ka wā e holo ai ʻo JavaScript, hiki ke hana i kekahi mau kekona ma hope o ka hāʻawi ʻana. Ma kahi o ka kali ʻana i ka hoʻohana ʻana iā JS <link rel= "preload">e hoʻomaka e hoʻoiho ma mua:
Mai hoʻohana nui i ka hoʻouka ʻana. Inā ʻoe e hoʻouka i nā mea āpau i ka lālani, ʻaʻole e wikiwiki ka pūnaewele; akā, e pale ia i ka polokalamu mai ka hoʻolālā pololei ʻana i kāna hana.
ʻAʻole e huikau me ka prefetching. Mai hoʻohana <link rel= "preload">, inā ʻaʻole pono ʻoe i ka kumuwaiwai ma hope koke o ka hoʻouka ʻana o ka ʻaoʻao. Inā makemake ʻoe iā ia ma hope, no ka laʻana no ka ʻaoʻao aʻe, a laila e hoʻohana <link rel= "prefetch">.
Nānā i nā kiko'ī
He hōʻailona pono kēia e hoʻokō ʻia e ka polokalamu kele pūnaewele (inā kākoʻo ia), ʻaʻole like me nā hōʻailona ʻē aʻe pili i ka preloading. Pono ka polokalamu kele pūnaewele e hoʻoiho i ka kumuwaiwai i kuhikuhi ʻia ma <link rel="preload">. I kekahi mau hihia ʻē aʻe paha e haʻalele paha ia i ka hoʻouka ʻana, no ka laʻana inā e holo ana ia ma kahi pili lohi.
Nā mea nui. Hāʻawi ka poʻe mākaʻikaʻi i nā mea nui i nā kumu waiwai like ʻole (nā ʻano, palapala, font, etc.) i mea e hoʻouka mua ai i nā kumuwaiwai koʻikoʻi. I kēia hihia, hoʻoholo ka polokalamu kele i ka mea nui ma ke ʻano as. No ka polokalamu kele pūnaewele Chrome hiki iā ʻoe ke nānā papa kuhikuhi piha.
kiʻi mua
<link rel= "prefetch"> noi i ka polokalamu kele pūnaewele e hoʻoiho a hūnā i kahi kumuwaiwai (e like me ka palapala a i ʻole ke ʻano pepa) ma hope. Hana ʻia ka hoʻouka ʻana ma kahi haʻahaʻa no laila ʻaʻole ia e hoʻopilikia i nā kumuwaiwai koʻikoʻi. Pono kēia inā makemake ʻia ka punawai ma ka ʻaoʻao aʻe a makemake ʻoe e hūnā ma mua.
Eia nō hoʻi, ʻaʻohe mea o ka polokalamu kele pūnaewele me ka waiwai ma hope o ka hoʻouka ʻana. ʻAʻole i hoʻokō ʻia nā palapala, ʻaʻole hoʻohana ʻia nā ʻano pepa. Hoʻopili wale ʻia ka punawai a loaʻa koke ke noi.
He mea nui e wehewehe i ke ano as - kōkua kēia i ka polokalamu kele pūnaewele e hoʻonohonoho pono i ka hoʻoiho ʻana.
Ke hoʻohana
E hoʻouka i nā kumuwaiwai mai nā ʻaoʻao ʻē aʻe, inā makemake ʻoe i kahi kumuwaiwai mai kahi ʻaoʻao ʻē aʻe, a makemake ʻoe e hoʻouka mua iā ia a laila e wikiwiki i ka unuhi ʻana o kēlā ʻaoʻao. ʻo kahi laʻana:
He hale kūʻai pūnaewele kāu, a haʻalele ka 40% o nā mea hoʻohana i ka ʻaoʻao home no ka ʻaoʻao huahana. Hoʻohana <link rel= "prefetch">, e hoʻouka ana i nā faila CSS a me JS e hoʻolilo i nā ʻaoʻao huahana.
Loaʻa iā ʻoe kahi palapala noi hoʻokahi, a hoʻouka nā ʻaoʻao ʻokoʻa i nā pūʻolo like ʻole. Ke kipa ka mea hoʻohana i kahi ʻaoʻao, hiki ke hoʻouka mua ʻia nā pūʻolo no nā ʻaoʻao a pau āna e loulou ai.
Hiki paha ke hoʻohana pono ʻia kēia tag i kēlā me kēia ʻano.. Hoʻonohonoho pinepine nā mea hoʻokele i ka prefetch me ka mea haʻahaʻa loa, no laila ʻaʻole ia e pilikia i kekahi. E hoʻomanaʻo wale i ka hoʻopau ʻana i nā mea hoʻohana, hiki ke uku kālā.
ʻAʻole no nā noi wikiwiki. Mai hoʻohana <link rel= "prefetch">, i ka wā e pono ai ka waiwai i loko o kekahi mau kekona. I kēia hihia, hoʻohana <link rel= "preload">.
Nānā i nā kiko'ī
Lepe koho. ʻAʻole koi ʻia ka polokalamu kele pūnaewele e hahai i kēia ʻōlelo aʻo; hiki ke nānā ʻole iā ia, no ka laʻana, ma kahi pili lohi.
Ka mea nui ma Chrome. Ma Chrome <link rel= "prefetch"> hoʻokō maʻamau me ka haʻahaʻa haʻahaʻa (e nānā papa kuhikuhi piha), ʻo ia hoʻi, ma hope o ka hoʻouka ʻana i nā mea ʻē aʻe.
hoʻopili mua
<link rel= "preconnect"> noi i ka polokalamu kele pūnaewele e hoʻopili i ka domain ma mua ke makemake ʻoe e wikiwiki i ka hoʻonohonoho pili i ka wā e hiki mai ana.
Pono ka polokalamu kele pūnaewele e hoʻokumu i kahi pilina inā loaʻa iā ia nā kumuwaiwai mai kahi kāʻei kapu ʻekolu. No ka laʻana, inā hoʻouka ia i nā Google Fonts, React fonts mai kahi CDN, a i ʻole e noi i kahi pane JSON mai kahi kikowaena API.
ʻO ka hoʻokumu ʻana i kahi pilina hou he mau haneli mau milliseconds. Hana ʻia i hoʻokahi manawa, akā mau ka manawa. Inā ua hoʻokumu ʻoe i kahi pilina ma mua, e mālama ʻoe i ka manawa a e hoʻoiho wikiwiki i nā kumuwaiwai mai kēia kahua.
href hōʻike i ka inoa kikowaena āu e makemake ai e hoʻoholo i ka helu IP. Hiki ke kuhikuhi ʻia me kahi prefix (https://domain.com) a me ka ʻole (//domain.com).
Ke hoʻohana
E hoʻohana no nā kāʻei kapu e pono koke ana e hoʻoiho i kahi ʻano koʻikoʻi, palapala a i ʻole kiʻi mai laila, akā ʻaʻole ʻoe i ʻike i ka URL waiwai. ʻo kahi laʻana:
Hoʻokipa ʻia kāu palapala noi ma my-app.com a hana AJAX noi i api.my-app.com: ʻAʻole ʻoe i ʻike i nā nīnau kikoʻī ma mua no ka mea ua hana ikaika ʻia lākou mai JS. Maʻaneʻi ua kūpono ke hoʻohana ʻana i kahi hōʻailona e hoʻopili mua i ka waihona.
Hoʻokipa ʻia kāu palapala noi ma my-app.com a hoʻohana i nā Google Fonts. Hoʻoiho ʻia lākou ma nā ʻanuʻu ʻelua: ʻo ka mua, lawe ʻia ka faila CSS mai ka waihona fonts.googleapis.com, a laila noi kēia faila i nā font me fonts.gstatic.com. ʻAʻole hiki iā ʻoe ke ʻike i nā faila font kikoʻī mai fonts.gstatic.com pono ʻoe a hiki i ka hoʻouka ʻana i ka faila CSS, no laila hiki iā mākou ke hana i kahi pilina mua ma mua.
E hoʻohana i kēia hōʻailona no ka wikiwiki ʻana i kekahi palapala a i ʻole kaila ʻaoʻao ma muli o ka pilina paʻa mua.
Mai hoʻohana nui. ʻO ka hoʻokumu ʻana a me ka mālama ʻana i kahi pilina he hana pipiʻi no ka mea kūʻai aku a me ke kikowaena. E hoʻohana i kēia hōʻailona no ka lōʻihi o 4-6 mau kikowaena.
Nānā i nā kiko'ī
Lepe koho. ʻAʻole pono ka polokalamu kele pūnaewele e hahai i kēia ʻōlelo aʻo a hiki ke nānā ʻole iā ia, no ka laʻana, inā ua hoʻokumu ʻia nā pilina he nui a i ʻole kekahi hihia ʻē aʻe.
He aha ke kaʻina hana pili?. No ka hoʻopili ʻana i kēlā me kēia pūnaewele, pono ka polokalamu kele pūnaewele e hana i kēia:
Hoʻoholo DNS. E huli i ka helu IP kikowaena (216.58.215.78) no ka inoa kikowaena i kuhikuhi ʻia (google.com).
TCP lulu lima. Hoʻololi i nā ʻeke (client → server → client) e hoʻomaka i kahi pilina TCP me ke kikowaena.
Lū lima TLS (nā kahua HTTPS wale nō). ʻElua pōʻai o ka hoʻololi packet (mea kūʻai → server → mea kūʻai aku → server → mea kūʻai aku) e hoʻomaka i kahi kau TLS paʻa.
E hoʻomaopopo: E hoʻomaikaʻi a wikiwiki ʻo HTTP/3 i ka mīkini lima lima, akā lōʻihi loa ia.
dns-prefetch
<link rel= "dns-prefetch"> noi i ka polokalamu kele pūnaewele e hana i ka hoʻonā DNS no ka domain ma mua inā e hoʻopili koke ʻoe iā ia a makemake ʻoe e wikiwiki i ka pilina mua.
Pono ka polokalamu kele pūnaewele e hoʻoholo i ka helu IP o ka domain inā e kiʻi mai ia i nā kumuwaiwai mai kahi kāʻei kapu ʻekolu hou. No ka laʻana, hoʻouka ʻana i nā Google Fonts, React fonts mai kahi CDN, a i ʻole ke noi ʻana i kahi pane JSON mai kahi kikowaena API.
No kēlā me kēia kikowaena hou, ʻo ka hoʻonā ʻana o ka moʻolelo DNS ma kahi o 20-120 ms. Hoʻopili wale kēia i ka hoʻouka ʻana o ka punawai mua mai kahi kikowaena i hāʻawi ʻia, akā hoʻolauna mau i kahi lohi. Inā mākou e hana i ka hoʻonā DNS ma mua, e mālama mākou i ka manawa a hoʻouka wikiwiki i ka kumuwaiwai.
href hōʻike i ka inoa inoa āu e makemake ai e hoʻonohonoho i ka helu IP. Hiki ke kuhikuhi ʻia me kahi prefix (https://domain.com) a me ka ʻole (//domain.com).
Ke hoʻohana
E hoʻohana no nā kāʻei kapu e pono koke ana e hoʻoiho i nā kumuwaiwai mai laila ʻaʻole ʻike mua ka polokalamu kele pūnaewele. ʻo kahi laʻana:
Hoʻokipa ʻia kāu palapala noi ma my-app.com a hana AJAX noi i api.my-app.com: ʻAʻole ʻoe i ʻike i nā nīnau kikoʻī ma mua no ka mea ua hana ikaika ʻia lākou mai JS. Maʻaneʻi ua kūpono ke hoʻohana ʻana i kahi hōʻailona e hoʻopili mua i ka waihona.
Hoʻokipa ʻia kāu palapala noi ma my-app.com, a hoʻohana i Google Fonts. Hoʻoiho ʻia lākou ma nā ʻanuʻu ʻelua: ʻo ka mua, lawe ʻia ka faila CSS mai ka waihona fonts.googleapis.com, a laila noi kēia faila i nā font me fonts.gstatic.com. ʻAʻole hiki iā ʻoe ke ʻike i nā faila font kikoʻī mai fonts.gstatic.com pono ʻoe a hiki i ka hoʻouka ʻana i ka faila CSS, no laila hiki iā mākou ke hana i kahi pilina mua ma mua.
E hoʻohana i kēia hōʻailona no ka wikiwiki ʻana i kekahi palapala a i ʻole kaila ʻaoʻao ma muli o ka pilina paʻa mua.
E ʻoluʻolu e nānā i nā ʻano like me <link rel= "dns-prefetch"/> и <link rel= "preconnect">. ʻAʻole kūpono ka hoʻohana pū ʻana iā lākou no hoʻokahi domain: <link rel= "preconnect"> ua komo <link rel= "dns-prefetch"/> a he nui aku. Hiki ke ho'āponoʻia kēia ma nā hihiaʻelua:
Makemake ʻoe e kākoʻo i nā polokalamu kele pūnaewele kahiko?. <link rel= "dns-prefetch" /> kākoʻo ʻia e mai IE10 a me Safari 5. <link rel= "preconnect"> Ua kākoʻo ʻia no kekahi manawa ma Chrome a me Firefox, akā ua hoʻohui ʻia i Safari ma 11.1 a ʻaʻole i kākoʻo ʻia ma IE/Edge. Inā pono ʻoe e kākoʻo i kēia mau polokalamu kele pūnaewele, e hoʻohana <link rel= "dns-prefetch" /> ma ke ʻano he koho hoʻihoʻi no <link rel= "preconnect">.
Makemake ʻoe e wikiwiki i nā pilina i ʻoi aku ma mua o 4-6 mau kikowaena. Tag <link rel= "preconnect"> ʻAʻole ʻōlelo ʻia e hoʻohana me ka ʻoi aku ma mua o 4-6 mau kikowaena, ʻoiai ʻo ka hoʻokumu ʻana a me ka mālama ʻana i kahi pilina he hana pipiʻi. <link rel= "dns-prefetch" /> hoʻohana i nā kumuwaiwai liʻiliʻi, no laila e hoʻohana inā pono.
Nānā i nā kiko'ī
Lepe koho. ʻAʻole koi ʻia ka polokalamu kele e hahai i kēia ʻōlelo aʻo, no laila ʻaʻole ia e hana i ka hoʻonā DNS, no ka laʻana, inā he nui nā hōʻailona ma ka ʻaoʻao a i ʻole kekahi hihia ʻē aʻe.
He aha ka DNS. Loaʻa i kēlā me kēia kikowaena ma ka Pūnaewele kahi helu IP kūʻokoʻa, e like me ke ʻano 216.58.215.78. Hoʻokomo pinepine ʻia ka inoa o ka pūnaewele i ka pahu helu o ka polokalamu kele pūnaewele (no ka laʻana, google.com), a me nā kikowaena DNS (Domain Name System) e hoʻohālikelike iā ia me ka IP address o ke kikowaena (216.58.215.78).
No ka hoʻoholo ʻana i kahi helu IP, pono e nīnau ka polokalamu kele pūnaewele i ka server DNS. Loaʻa iā 20−120 ms ke hoʻohui ʻia i kahi kāʻei kapu ʻekolu hou.
Hoʻopili ʻia ʻo DNS, ʻoiai ʻaʻole hilinaʻi nui. Hoʻopaʻa kekahi mau OS a me nā polokalamu kele pūnaewele i nā nīnau DNS: e mālama kēia i ka manawa ma nā nīnau pinepine, akā ʻaʻole hiki ke hilinaʻi ʻia ka cache. Ma Linux, ʻaʻole ia e hana. Loaʻa iā Chrome kahi cache DNS, akā hoʻokahi wale nō minuke. Mālama ʻo Windows i nā pane DNS no ʻelima mau lā.
hāʻawi mua
<link rel= "prerender"> noi i ka polokalamu kele pūnaewele e hoʻoiho i ka URL a hōʻike iā ia ma kahi ʻaoʻao ʻike ʻole. Ke kaomi ka mea hoʻohana i ka loulou, pono e hōʻike koke ʻia ka ʻaoʻao. Pono kēia inā maopopo ʻoe e kipa ka mea hoʻohana i kekahi ʻaoʻao a makemake ʻoe e wikiwiki i kāna hōʻike.
ʻOiai (a i ʻole ma muli o) ka maikaʻi ʻokoʻa o kēia tag, ma 2019 <link rel= "prerender"> kākoʻo maikaʻi ʻole ʻia i nā polokalamu kele nui. E ʻike i nā kikoʻī hou aku. ma lalo.
href kuhikuhi i ka URL āu e makemake ai e hoʻomaka i ka hana ʻana ma hope.
Ke hoʻohana
Ke maopopo maoli ʻoe e hele ka mea hoʻohana i kekahi ʻaoʻao. Inā loaʻa iā ʻoe kahi "tunnel" kahi e hele ai 70% o nā malihini i ka ʻaoʻao A i ka ʻaoʻao B, a laila <link rel= "prerender"> ma ka ʻaoʻao A e kōkua i ka hōʻike wikiwiki ʻana i ka ʻaoʻao B.
Mai hoʻohana nui. He kumukūʻai nui ka pre-rendering ma ke ʻano o ka bandwidth a me ka hoʻomanaʻo. Mai hoʻohana <link rel= "prerender"> no ka ʻaoʻao hoʻokahi.
Nānā i nā kiko'ī
Lepe koho. ʻAʻole pono ka polokalamu kele pūnaewele e hahai i kēia ʻōlelo aʻo a hiki ke nānā ʻole iā ia, no ka laʻana, ma kahi pili lohi a i ʻole lawa ʻole ka hoʻomanaʻo manuahi.
E mālama i ka hoʻomanaʻo ʻAʻole hana ʻo Chrome i ka unuhi pihaa me ka hoʻouka mua wale nō NoState. ʻO ia ke ʻano o ka hoʻouka ʻana o Chrome i ka ʻaoʻao a me kāna mau kumuwaiwai āpau, akā ʻaʻole ia e hāʻawi a hoʻokō i ka JavaScript.
ʻAʻole kākoʻo ʻo Firefox a me Safari i kēia hōʻailona. ʻAʻole ia e hōʻole i ka ʻōlelo kikoʻī, no ka mea ʻaʻole pono nā mākaʻikaʻi e hahai i kēia ʻōlelo aʻo; aka, kaumaha nae. Hoʻokō ʻino Ua wehe ʻia ʻo Firefox no ʻehiku makahiki. Aia nā hōʻike e pili ana iā Safari ʻAʻole kākoʻo i kēia hōʻailona.
Hōʻuluʻulu
E hoʻohana:
<link rel= "preload"> - ke makemake ʻoe i kahi kumuwaiwai i kekahi mau kekona
<link rel= "prefetch"> - inā makemake ʻoe i ka kumuwaiwai ma ka ʻaoʻao aʻe
<link rel= "preconnect"> - ke ʻike ʻoe e pono koke ana ʻoe i kahi kumuwaiwai, akā ʻaʻole ʻoe i ʻike i kona URL piha
<link rel= "dns-prefetch"> - like, ke ʻike ʻoe e pono koke ana ʻoe i kahi kumuwaiwai, akā ʻaʻole ʻoe i ʻike i kāna URL piha (no nā mea nānā kahiko)
<link rel= "prerender"> - ke maopopo ʻoe e hele ana nā mea hoʻohana i kekahi ʻaoʻao, a makemake ʻoe e wikiwiki i kāna hōʻike