ááŸááá«áááº
ááá¯á¡á±ážáá¬á á¡á²áá«á á¡áááºážááá¯ážááŸááºážááŒá®áž á¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáá¬á áá¶ááááºáá«ážáᯠááá¬á áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠááá±á¬ááºáá¬á¡á¬áž á¡áááá·áºáá±ážáááº-
<link rel="prefetch" href="/my/style.css" as="style" />
<link rel="preload" href="/my/style.css" as="style" />
<link rel="preconnect" href="https://example.com" />
<link rel="dns-prefetch" href="https://example.com" />
<link rel="prerender" href="https://example.com/about.html" />
áááºážááá¯á·áá¯ááºáá±á¬ááºáá¯á¶ááŸáá·áº áááºááá·áºá¡áá»áááºááœáẠá¡áá¯á¶ážááŒá¯ááááºááᯠá¡ááá¯áá»á¯á¶ážááŸááºážááŒááŒáá«á
áá¯á·á
ááœá¬ážáááº-
ááŒáá¯áááºáááºáá«á
<link rel= "preload">
á¡áááºážá¡ááŒá
áºáá
áºáᯠ(á¥ááᬠscript ááá¯á·ááá¯áẠáá¯á¶á
á¶á
á¬ááœááºáá²á·ááá¯á·) ááᯠáááºááá¯ááºááá»áŸá¡ááŒááºáá¯á¶ážáááºááŒá®áž áááºááŸáºáá¯ááºááẠááá±á¬ááºáá¬á¡á¬áž ááŒá±á¬áá¬ážáááºá á
á¬áá»ááºááŸá¬ááá¯ááœáá·áºááŒá®áž á
áá¹ááá·áºá¡áááºážáááºá¡ááŒá¬ááœáẠáááºážááŒá
áºáá
áºáá¯ááá¯á¡ááºáá±á¬á¡áá« áááºážááẠá¡áá¯á¶ážáááºááẠ- ááŸáá·áº áááºáá¯ááºáááºážá
ááºááᯠá¡ááŸáááºááŒáŸáá·áºááá¯áá±á¬á¡áá»áááºááœáẠáááºážááẠá¡áá¯á¶ážáááºáááºá
ááœáá·áºááŒá®ážáá±á¬áẠááá±á¬ááºáá¬ááẠá¡áááºážá¡ááŒá áºááŸáá·áº áá¬ááŸáááá¯ááºáá«á Script áá»á¬ážááᯠááá¯ááºáá±á¬ááºáá«á á ááá¯ááºá á¬ááœááºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá«á á¡áááºážá¡ááŒá áºááᯠááá¯ážááŸááºážá áœá¬ áááºááŸáºáá¯ááºáá¬ážááŒá®áž áá±á¬ááºážááá¯áá»ááºá¡á áá»ááºáá»ááºážáááŸáááá¯ááºáááºá
syntax
<link rel="preload" href="/my/style.css" as="style" />
href
áááºáá±á«ááºážáá¯ááºáá¯ááºááá¯áá±á¬ á¡áááºážá¡ááŒá
áºááᯠááœáŸááºááŒáá«á
as
ááá±á¬ááºáá¬ááœáẠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá±á¬ áááºááá·áºá¡áá¬áááᯠááŒá
áºááá¯ááºáááº-
style
á ááá¯ááºá á¬ááœááºáá»á¬ážá¡ááœááºáscript
scripts ááœá±á¡ááœááºáfont
áá±á¬áá·áºáá»á¬ážá¡ááœááºáfetch
á¡áá¯á¶ážááŒá¯ááŒá®áž áááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážá¡ááœááºfetch()
ááá¯á·ááá¯ááºXMLHttpRequest
,- á
á¬áááºážá¡ááŒáá·áºá¡á
á¯á¶ááá¯ááŒáá·áºáá«á
MDN ááœáẠ.
attribute ááá¯áááºááŸááºáááºá¡áá±ážááŒá®ážáá«áááºá as
- áááºážááẠááá±á¬ááºáá¬á¡á¬áž ááŸááºáááºá
áœá¬ áŠážá
á¬ážáá±ážááŒá®áž áá±á«ááºážáá¯ááºáá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²ááẠáá°áá®áá±ážáááºá
áááºá¡áá»áááºááŸá¬áá¯á¶ážáááá²
ááá±ážáá±á¬á·áá±á¬á¡áá¬áááºááœáẠáááºážááŒá áºááá¯á¡ááºáá¬áá±á¬á¡áá«ááœáẠááŒáá¯áááºááá·áºááœááºážááŒááºážááᯠá¡áá¯á¶ážááŒá¯áá«á á¥ááá¬á¡á¬ážááŒááºá·:
- ááŒááºáááá¯ááºá០á
á¶ááá¯ááºáá±á¬ áá±á¬áá·áºáá»á¬áž-
<!-- index.html --> <link rel="stylesheet" href="index.css" /> /* index.css */ @font-face { src: url('comic-sans.woff2') format('woff2'); }
áá¯á¶ááŸááºá¡á¬ážááŒááºá·
comic-sans.woff2
áá±á«ááºážáá¯ááºáá¯ááºááŒá®áž ááœá²ááŒááºážá áááºááŒá¬ááŒá®ážááŸáᬠá áááºáááºáá±ážáá«áááºáindex.css
. á¡ááŒá¬ááŒá®ážá á±á¬áá·áºááá¯ááºážááŒááºážá០ááŸá±á¬ááºááŒááºáááºá áááºááẠáá±á¬áá·áºááᯠá¡áá¯á¶ážááŒá¯á á¡á á±á¬ááá¯ááºážááœáẠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá«áááºá<link rel= "preload">
:<link rel="preload" href="comic-sans.woff2" as="font" />
- áá»ááºážáááºáá¯á¶á¡á áááºážáá²á·á
ááá¯ááºááœá±ááᯠááœá²áá¯ááºáá«á
á¡áá±ážáá«áá±á¬ CSS á¡áá±ážáá«áá±á¬ (áá»ááºáá»ááºážááŒááºááá¯áááº) ááŸáá·áº á¡áá±ážáá«ááŒááºážáááŸááá±á¬ á¡ááá¯ááºážááŸá áºááá¯ááºážá¡ááŒá áº<style> /* Inlined critical styles */ </style> <script> /* Custom JS that starts downloading non-critical styles */ loadCSS('/app/non-critical.css'); </script>
á€áá»ááºážáááºááŸá¯ááŒáá·áºá á¡áá±ážááá«áá±á¬á ááá¯ááºáá»á¬ážááẠJavaScript ááá¯ááœáá·áºááá·áºá¡áá«ááŸáᬠá áááºáááºááŒá áºááŒá®ážá áááºážááẠáááºáááºááŒá®ážáá±á¬áẠá áá¹ááá·áºá¡áááºážáááºá¡ááœááºáž ááŒá áºááœá¬ážááá¯ááºáááºá á á±á¬áá·áºááá¯ááºážááá·áºá¡á á¬áž JS ááá¯á¡áá¯á¶ážááŒá¯áá«á
<link rel= "preload">
á á±á¬á á±á¬á á áááºáá±á«ááºážáá¯ááºáá¯ááºáááº-<style> /* Inlined critical styles */ </style> <link rel="preload" href="/my/app/non-critical.css" as="style" /> <script> /* Custom JS that starts downloading non-critical styles */ loadCSS('/app/non-critical.css'); </script>
ááŒáá¯áááºááá·áºááœááºážááŒááºážááᯠá¡ááœááºá¡áá»áœá¶ááá¯á¶ážáá«ááŸáá·áº. á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºááá¯ááºáááºáá«áá ááá¯ááºááẠáááááá¬áᬠááŒááºáááºáá¬áááºááá¯ááºáá«á ááá·áºáá»ááºáááºá¡áá±ááŸáá·áºá áááºážááẠááá±á¬ááºáá¬á¡á¬áž áááºážáá¡áá¯ááºá¡á¬áž ááŸááºáááºá áœá¬ á á®á ááºááŒááºážá០áá¬ážáá®ážáááºááŒá áºáááºá
áá±á«áºáá°ááŒááºážááŸáá·áº ááá±á¬ááœá±ážáááº. ááá¯á¶ážáá«áá²á·á <link rel= "preload">
á
á¬áá»ááºááŸá¬ááá¯ááœáá·áºááŒá®ážááŒá®ážáá»ááºáž áááºááẠá¡áááºážá¡ááŒá
áºááᯠáááá¯á¡ááºáá«áá áá±á¬ááºááá¯ááºážááŸá¬ ááá¯á¡ááºááẠá¥ááᬠáá±á¬ááºá
á¬áá»ááºááŸá¬á¡ááœáẠáá¯á¶ážáá«á <link rel= "prefetch">
.
á¡áá±ážá ááá»
á€áááºááŸá¬ ááá¯á¡ááºáá±á¬ tag áá
áºáá¯ááŒá
áºáááºá ááá±á¬ááºáá¬á áá¯ááºáá±á¬ááºááẠ(áááºážááᯠáá¶á·ááá¯ážáá±ážáá»áŸááº) á¡ááŒá¬áž tag áá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº ááá°áá«á preloading ááŸáá·áºáááºááá¯ááºáááºá ááá±á¬ááºáá¬ááẠáááºááŸááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá
áºááᯠáá±á«ááºážáá¯ááºáá¯ááºááá«áááºá <link rel="preload">
. á¡ááŒá¬ážááá
á¹á
áá»á¬ážááœáẠáááºážááẠááŸá±ážááœá±ážáá±á¬ áá»áááºáááºááŸá¯ááœáẠáá¯ááºáá±á¬ááºáá±áá«á ááŒáá¯áááºááá·áºááœááºážááŒááºážááᯠáá»á
áºáá»á°ááŸá¯ááá¯ááºáááºá
áŠážá
á¬ážáá±áž. á¡áá±ážááŒá®ážáá¯á¶ážá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠáŠážá
áœá¬áááºááá¯ááºááẠááá±á¬ááºáá¬áá»á¬ážááẠááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ á¡áááºážá¡ááŒá
áºáá»á¬áž (á
ááá¯ááºáá»á¬ážá áá¬ááºááœáŸááºážáá»á¬ážá áá±á¬áá·áºáá»á¬ážá á
áááº) ááœáẠááá°áá®áá±á¬áŠážá
á¬ážáá±ážáá»á¬ážááᯠáááºááŸááºáá±ážáá«áááºá á€ááá
á¹á
ááœááºá ááá±á¬ááºáá¬ááẠáááºááœáŸááºážáá»ááºááŒáá·áº áŠážá
á¬ážáá±ážáá¯á¶ážááŒááºáááºá as
. Chrome browser á¡ááœáẠáááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
ááŒáá¯áááºááá°áá«
<link rel= "prefetch">
áá±á¬ááºáá¶ááœáẠá¡áááºážá¡ááŒá
áºáá
áºáᯠ(á¥ááᬠscript ááá¯á·ááá¯áẠá
ááá¯ááºá
á¬ááœááºáá²á·ááá¯á·) ááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž áááºááŸáºáá¯ááºááẠááá±á¬ááºáá¬á¡á¬áž áá±á¬ááºážááá¯áááºá Loading ááẠáŠážá
á¬ážáá±ážááŸá¯ áááºážáá«ážáá±á¬ááŒá±á¬áá·áº áááºážááẠááá¯á¡áá±ážááŒá®ážáá±á¬ á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠá¡ááŸá±á¬áá·áºá¡ááŸááºáááŒá
áºá
á±áá«á áá±á¬ááºá
á¬áá»ááºááŸá¬ááœáẠáááºážááŒá
Ạááá¯á¡ááºááŒá®áž ááŒáá¯ááẠáááºááŸáºáá¯ááºááá¯áá«á áááºážááẠá¡áá¯á¶ážáááºáááºá
á€ááœááºáááºážá browser ááẠloading ááŒá®ážáá±á¬ááºá¡áááºážá¡ááŒá áºááŸáá·áºáá¬ááŸááá¯ááºáá«á Script áá»á¬ážááᯠááá¯ááºáá±á¬ááºáá«á á ááá¯ááºá á¬ááœááºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá«á á¡áááºážá¡ááŒá áºááᯠááá¯ážááŸááºážá áœá¬ áááºááŸáºáá¯ááºáá¬ážááŒá®áž áá±á¬ááºážááá¯áá»ááºá¡á áá»ááºáá»ááºážáááŸáááá¯ááºáááºá
syntax
<link rel="prefetch" href="/my/style.css" as="style" />
href
áááºáá±á«ááºážáá¯ááºáá¯ááºááá¯áá±á¬ á¡áááºážá¡ááŒá
áºááᯠááœáŸááºááŒáá«á
as
ááá±á¬ááºáá¬ááœáẠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá±á¬ áááºááá·áºá¡áá¬áááᯠááŒá
áºááá¯ááºáááº-
style
á ááá¯ááºá á¬ááœááºáá»á¬ážá¡ááœááºáscript
scripts ááœá±á¡ááœááºáfont
áá±á¬áá·áºáá»á¬ážá¡ááœááºáfetch
á¡áá¯á¶ážááŒá¯ááŒá®áž áááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážá¡ááœááºfetch()
ááá¯á·ááá¯ááºXMLHttpRequest
,- á
á¬áááºážá¡ááŒáá·áºá¡á
á¯á¶ááá¯ááŒáá·áºáá«á
MDN ááœáẠ.
attribute ááá¯áááºááŸááºáááºá¡áá±ážááŒá®ážáá«áááºá as
- áááºážááẠááá±á¬ááºáá¬á¡á¬áž ááŸááºáááºá
áœá¬ áŠážá
á¬ážáá±ážá áá±á«ááºážáá¯ááºáá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²ááẠáá°áá®áá±ážáááºá
áááºá¡áá»áááºááŸá¬áá¯á¶ážáááá²
á¡ááŒá¬ážá á¬áá»ááºááŸá¬áá»á¬ážá០á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáááºá¡áááºá áááºááẠá¡ááŒá¬ážá á¬áá»ááºááŸá¬á០á¡áááºážá¡ááŒá áºáá áºáᯠááá¯á¡ááºááŒá®áž áááºážááᯠá á¬áá»ááºááŸá¬á rendering ááᯠá¡ááŸáááºááŒáŸáá·áºáááºá¡ááœáẠáááºážááá¯ááŒáá¯áááºáááºááá¯áá«áá á¥ááá¬á¡á¬ážááŒááºá·:
- ááá·áºááœáẠá¡áœááºááá¯ááºážá
ááá¯ážáá
áºáá¯ááŸáááŒá®áž áá¯á¶ážá
áœá²áá° áá áá¬ááá¯ááºááŸá¯ááºážááẠáá¯ááºáá¯ááºá
á¬áá»ááºááŸá¬á¡ááœáẠáááºáá
á¬áá»ááºááŸá¬á០ááœááºááœá¬ááœá¬ážááŒáááºá áá¯á¶ážáá«á
<link rel= "prefetch">
áá¯ááºáá¯ááºá á¬áá»ááºááŸá¬áá»á¬ážááá¯áááºáááºááẠCSS ááŸáá·áº JS ááá¯ááºáá»á¬ážááᯠáááºáá±áááºá - ááá·áºááœáẠá á¬áá»ááºááŸá¬áá áºáá¯áááºážááŸá á¡ááºááºáá®áá±ážááŸááºážáá áºáá¯ááŸáááŒá®áž ááá°áá®áá±á¬ á á¬áá»ááºááŸá¬áá»á¬ážááẠááá°áá®áá±á¬ áááºáá±á·ááºá»áá»á¬ážááᯠáááºááá¯ááºáááºá á¡áá¯á¶ážááŒá¯áá°áá áºáŠážááẠá á¬áá»ááºááŸá¬ááá¯á·ááœá¬ážáá±á¬ááºááá·áºá¡áá«á áááºážááá·áºááºáá»áááºáá¬ážáá±á¬ á á¬áá»ááºááŸá¬á¡á¬ážáá¯á¶ážá¡ááœáẠáááºáá±á·áá»áºáá»á¬ážááᯠááŒáá¯áááºáááºáá¬ážááá¯ááºáááºá
á€áááºááºá¡á¬áž áááºááá·áºá¡ááá¯ááºážá¡áá¬á¡áá áá±ážáááºážá áœá¬ á¡áá¯á¶ážááŒá¯ááá¯ááºáááºáá²á. ááá±á¬ááºáá¬áá»á¬ážááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áááá·áºáá¯á¶ážáŠážá á¬ážáá±ážááŒáá·áº ááŒáá¯áááºááŸá¬áá°ááẠá¡áá»áááºááá¬ážááœá²áá¬ážáá±á¬ááŒá±á¬áá·áº áááºáá°ááá¯áá»áŸ á¡ááŸá±á¬ááºá¡ááŸááºáááŒá áºáá«á ááœá±áá¯ááºá á±ááá·áº áá¯á¶ážá áœá²áá°á¡ááœá¬ážá¡áá¬ááᯠáá¯á¶ážá áœá²ááŒá±á¬ááºáž áááááá«á
á¡áá±ážáááŒá®áž áá±á¬ááºážááá¯ááŸá¯ááœá±á¡ááœáẠááá¯ááºáá«áá°ážá. ááá¯á¶ážáá«áá²á·á <link rel= "prefetch">
á
áá¹ááá·áºá¡áááºážáááºá¡ááœááºáž á¡áááºážá¡ááŒá
Ạááá¯á¡ááºáá±áá»áááºá á€ááá
á¹á
ááœááºá¡áá¯á¶ážááŒá¯áá«á <link rel= "preload">
.
á¡áá±ážá ááá»
ááœá±ážáá»ááºááá¯ááºáá±á¬ tag. ááá±á¬ááºáá¬ááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯ááºáá¬ááẠáááá¯á¡ááºáá«á á¥ááá¬á ááŸá±ážááœá±ážáá±á¬ áá»áááºáááºááŸá¯ááœáẠáááºážááᯠáá»á áºáá»á°ááŸá¯ááá¯ááºáááºá
Chrome ááœáẠáŠážá
á¬ážáá±áž. Chrome ááŸá¬ <link rel= "prefetch">
á¡áááá·áºáá¯á¶ážáŠážá
á¬ážáá±ážááŒáá·áº áá¯ááºáá±á¬ááºáá±á·ááŸáááẠ(ááŒáá·áºáá«á
ááŒáá¯áááºáá»áááºáááºáá«á
<link rel= "preconnect">
á¡áá¬áááºááœáẠáá»áááºáááºááŸá¯ á
áá
áºááá·áºááœááºážááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯áá±á¬á¡áá«ááœáẠááá±á¬ááºáá¬á¡á¬áž ááá¯ááááºážááá¯á· áá»áááºáááºááẠáá±á¬ááºážááá¯áááºá
ááŒááºááá¯áá¹ááá® ááá¯ááááºážá¡áá áºá០á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá°áááºááá¯áá«á ááá±á¬ááºáá¬ááẠáá»áááºáááºááŸá¯áá áºáá¯ááᯠáááºáá±á¬ááºááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºážááẠGoogle Fontsá CDN áá áºáá¯á០áá¯á¶á·ááŒááºááá·áºáá±á¬áá·áºáá»á¬ážááᯠáááºáá«á ááá¯á·ááá¯áẠAPI áá¬áá¬áá áºáá¯á០JSON áá¯á¶á·ááŒááºááŸá¯ááᯠáá±á¬ááºážááá¯áá«áá
áá»áááºáááºááŸá¯á¡áá áºáá áºáá¯áááºáá±á¬ááºááŒááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá¬ááááºážáá®áá®á áá¹ááá·áºááŒá¬áááºá áá áºááŒáááºááŒá®ážáá±á¬áºáááºáž á¡áá»áááºáá°ááá±ážáááºá á¡áááºá áááºááẠáá»áááºáááºááŸá¯áá áºáá¯ááᯠááŒáá¯áááºáááºáá±á¬ááºáá¬ážáá«á áááºááẠá¡áá»áááºáá¯ááºáááºáá¬á á±ááŒá®áž á€ááá¯ááááºážá០á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá¬ááœáẠááá¯ááá¯ááŒááºáááºáááºááŒá áºáááºá
syntax
<link rel= "preconnect" href="https://api.my-app.com" />
href
IP ááááºá
á¬ááᯠáááºáá¯á¶ážááŒááºááá¯áá±á¬ ááá¯ááááºážá¡áááºááᯠááœáŸááºááŒáááºá ááŸá±á·áááºááœá²ááŒáá·áº áááºááŸááºááá¯ááºááẠ(https://domain.com
) ááá¯á·ááá¯áẠááá«áá² (//domain.com
).
áááºá¡áá»áááºááŸá¬áá¯á¶ážáááá²
áááŒá¬áá® ááá¯á¡ááºááá·áº ááá¯ááááºážáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«á á¡áá±ážááŒá®ážáá±á¬á ááá¯ááºá áá¬ááºááœáŸááºáž ááá¯á·ááá¯áẠáá¯ááºáá¯á¶ááᯠááá¯áá±áá¬á០áá±á«ááºážáá¯ááºáá¯ááºáááºá ááá¯á·áá±á¬áº á¡áááºážá¡ááŒá ẠURL ááᯠáááºááááá±ážáá«á á¥ááá¬á¡á¬ážááŒááºá·:
- ááá·áºáá»áŸá±á¬ááºááœáŸá¬ááᯠááœáá·áºáá¬ážáááºá
my-app.com
ááŸáá·áº AJAX áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááŒá¯áá¯ááºáááºáapi.my-app.com
- áááºážááá¯á·ááᯠJS á០ááá¯ááºááá áºááŒáá·áº ááŒá¯áá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááá»áá±á¬áá±ážááœááºážáá»á¬ážááᯠáááºááŒáá¯áááºááááá«á á€áá±áá¬ááœáẠááá¯ááááºážááá¯á· ááŒáá¯áááºáá»áááºáááºááẠáááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠá¡ááœááºááá·áºáá»á±á¬áºáá«áááºá - ááá·áºáá»áŸá±á¬ááºááœáŸá¬ááᯠááœáá·áºáá¬ážáááºá
my-app.com
ááŸáá·áº Google Fonts ááᯠá¡áá¯á¶ážááŒá¯. áááºážááá¯á·ááᯠá¡ááá·áºááŸá áºááá·áºááŒáá·áº áá±á«ááºážáá¯ááºáá¯ááºáááº- áááá CSS ááá¯ááºááᯠááá¯ááááºážá០áá±á«ááºážáá¯ááºáá¯ááºáá¬ážáááºáfonts.googleapis.com
ááá¯á·áá±á¬áẠá€ááá¯ááºááẠáá±á¬áá·áºáá»á¬ážááŒáá·áº áá±á¬ááºážááá¯áááºáfonts.gstatic.com
. áááºááá·áºáá±á¬áá·áºááá¯ááºáá»á¬ážá០ááŒá áºáááºááᯠáááºáááááá¯ááºáá«áfonts.gstatic.com
CSS ááá¯ááºááᯠáááºááááºááá»ááºáž áááºááá¯á¡ááºáááá·áºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááá¬ááá»áááºáááºááŸá¯ááá¯áᬠááŒá¯áá¯ááºááá¯ááºáá«áááºá
áááááá«áá® script ááá¯á·ááá¯áẠáá¯á¶á á¶á¡áááºážáááºááᯠá¡ááŸáááºááŒáŸáá·áºááẠဠtag ááá¯áá¯á¶ážáá«á ááŒáá¯áááºáá»áááºáááºáá¬ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡ááœááºá¡áá»áœá¶ááá¯á¶ážáá«ááŸáá·áº. áá»áááºáááºááŸá¯ááᯠáá°áá±á¬ááºááŒááºážááŸáá·áº ááááºážááááºážááŒááºážááẠclient ááŸáá·áº server ááŸá áºáá¯áá¯á¶ážá¡ááœáẠá á»á±ážááŒá®ážáá±á¬áá¯ááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá á¡áá»á¬ážáá¯á¶áž 4-6 ááá¯ááááºážá¡ááœáẠá€áááºááºááᯠá¡áá¯á¶ážááŒá¯áá«á
á¡áá±ážá ááá»
ááœá±ážáá»ááºááá¯ááºáá±á¬ tag. ááá±á¬ááºáá¬ááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯ááºáá¬ááẠáááá¯á¡ááºáá² áá»á áºáá»á°ááŸá¯ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áááºáááºááŸá¯áá»á¬ážá áœá¬ááᯠáááºáá±á¬ááºááŒá®ážááŒá® ááá¯á·ááá¯áẠá¡ááŒá¬ážááá á¹á áááºáá áºáá¯áá¯ááœáẠááŸááá±áá«áá
áá»áááºáááºááŸá¯áá¯ááºáááºážá ááºááœáẠá¡áááºá¡áá¬áá«áááºááááºážá. áááºááá¯ááºáá áºáá¯á á®ááá¯á· áá»áááºáááºáááºá ááá±á¬ááºáá¬ááẠá¡á±á¬ááºáá«ááá¯á·ááᯠáá¯ááºáá±á¬ááºááá«áááº-
- DNS ááŒááºáá¬ážááŸá¯. áá¬áᬠIP ááááºá
á¬ááᯠááŸá¬áá« (
216.58.215.78
) áááºááŸááºáá¬ážáá±á¬ ááá¯ááááºážá¡áááºá¡ááœáẠ(google.com
). - TCP áááºááœá²ááŸá¯ááºáááºááŒááºážá. áá¬áá¬ááŸáá·áº TCP áá»áááºáááºááŸá¯ á áááºááẠáááºáá±á·áá»áºáá»á¬áž (áá±á¬ááºááẠâ áá¬áᬠâ áááá¯ááºážááá·áº) ááᯠáá²ááŸááºáá«á
- TLS áááºááœá²ááŸá¯ááºáááºááŒááºáž (HTTPS ááá¯ááºáá»á¬ážáá¬). áá¯á¶ááŒá¯á¶áá±á¬ TLS á ááºááŸááºááᯠá áááºááẠááŸá áºáááºááŒá¬ áááºáááºáá²ááŸááºááŒááºáž (áá±á¬ááºááẠâ áá¬áᬠâ áááá¯ááºážááá·áº â áá¬áᬠâ áááá¯ááºážááá·áº)á
ááŸááºáá»ááº- HTTP/3 ááẠáááºááœá²ááŸá¯ááºáááºááŒááºáž ááá¹ááá¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±ááŒá®áž á¡ááŸáááºááŒáŸáá·áºáá±ážáááºááŒá áºáá±á¬áºáááºáž áááºážááẠááá®ážáá±ážáá±áá²ááŒá áºáááºá
dns-prefetch
<link rel= "dns-prefetch">
áááºááẠáááºážááŸáá·áº áááŒá¬áá®áá»áááºáááºáááºááŒá
áºááŒá®áž áááŠážáá»áááºáááºááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯áá«á ááá¯ááááºážá¡ááœáẠDNS resolution áá¯ááºáá±á¬ááºááẠááá±á¬ááºáá¬á¡á¬áž áá±á¬ááºážááá¯áá¬ážáááºá
ááá±á¬ááºáá¬ááẠááŒááºááá¯áá¹ááá® ááá¯ááááºážá¡áá áºá០á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá°áááºááá¯áá«á ááá¯ááááºážá IP ááááºá á¬ááᯠáá¯á¶ážááŒááºááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Google Fontsá CDN áá áºáá¯á០React áá±á¬áá·áºáá»á¬ážááᯠáááºááŒááºáž ááá¯á·ááá¯áẠAPI áá¬áá¬áá áºáá¯á០JSON áá¯á¶á·ááŒááºááŸá¯ááᯠáá±á¬ááºážááá¯ááŒááºážá
ááá¯ááááºážá¡áá áºáá áºáá¯á á®á¡ááœááºá DNS record resolution ááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº 20-120 ms ááá·áºááŒá¬áááºá áááºážááẠáá±ážáá¬ážáá±á¬ááá¯ááááºážáá áºáá¯á០ááááá¯á¶ážáááºážááŒá áºááᯠáááºááŒááºážá¡áá±á«áºáᬠáááºáá±á¬ááºááŸá¯ááŸááá±á¬áºáááºáž ááŸá±á¬áá·áºááŸá±ážááŸá¯ááᯠáááºáááºáá±á¬áºááŒáááºá DNS resolution ááᯠááŒáá¯áááºáá¯ááºáá±á¬ááºáá«á á¡áá»áááºáá¯ááºáááºáá¬ááŒá®áž á¡áááºážá¡ááŒá áºááᯠááá¯ááá¯ááŒááºáááºá áœá¬ áááºááá¯ááºáááºááŒá áºáááºá
syntax
<link rel= "dns-prefetch" href="https://api.my-app.com" />
href
IP ááááºá
á¬ááᯠáááºáááºááŸááºááá¯áá±á¬ ááá¯ááááºážá¡áááºááᯠááœáŸááºááŒáááºá ááŸá±á·áááºááœá²ááŒáá·áº áááºááŸááºááá¯ááºááẠ(https://domain.com
) ááá¯á·ááá¯áẠááá«áá² (//domain.com
).
áááºá¡áá»áááºááŸá¬áá¯á¶ážáááá²
áááŒá¬áá® ááá¯á¡ááºááá·áº ááá¯ááááºážáá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«á browser ááŸááŒáá¯áááºááááá±á¬á¡áááºážá¡ááŒá áºáá»á¬ážááá¯áá±á«ááºážáá¯ááºáá¯ááºáááºá á¥ááá¬á¡á¬ážááŒááºá·:
- ááá·áºáá»áŸá±á¬ááºááœáŸá¬ááᯠááœáá·áºáá¬ážáááºá
my-app.com
ááŸáá·áº AJAX áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááŒá¯áá¯ááºáááºáapi.my-app.com
- áááºážááá¯á·ááᯠJS á០ááá¯ááºááá áºááŒáá·áº ááŒá¯áá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááá»áá±á¬áá±ážááœááºážáá»á¬ážááᯠáááºááŒáá¯áááºááááá«á á€áá±áá¬ááœáẠááá¯ááááºážááá¯á· ááŒáá¯áááºáá»áááºáááºááẠáááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠá¡ááœááºááá·áºáá»á±á¬áºáá«áááºá - ááá·áºáá»áŸá±á¬ááºááœáŸá¬ááᯠááœáá·áºáá¬ážáááºá
my-app.com
ááŸáá·áº Google Fonts ááá¯á¡áá¯á¶ážááŒá¯áááºá áááºážááá¯á·ááᯠá¡ááá·áºááŸá áºááá·áºááŒáá·áº áá±á«ááºážáá¯ááºáá¯ááºáááº- áááá CSS ááá¯ááºááᯠááá¯ááááºážá០áá±á«ááºážáá¯ááºáá¯ááºáá¬ážáááºáfonts.googleapis.com
ááá¯á·áá±á¬áẠá€ááá¯ááºááẠáá±á¬áá·áºáá»á¬ážááŒáá·áº áá±á¬ááºážááá¯áááºáfonts.gstatic.com
. áááºááá·áºáá±á¬áá·áºááá¯ááºáá»á¬ážá០ááŒá áºáááºááᯠáááºáááááá¯ááºáá«áfonts.gstatic.com
CSS ááá¯ááºááᯠáááºááááºááá»ááºáž áááºááá¯á¡ááºáááá·áºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááá¬ááá»áááºáááºááŸá¯ááᯠááŒáá¯áááºáááºááŸááºááá¯ááºáá«áááºá
áááááá«áá® script ááá¯á·ááá¯áẠáá¯á¶á á¶á¡áááºážáááºááᯠá¡ááŸáááºááŒáŸáá·áºááẠဠtag ááá¯áá¯á¶ážáá«á ááŒáá¯áááºáá»áááºáááºáá¬ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡áá¬ážáá°ááá¹ááá¬áá»á¬ážááᯠáááááŒá¯áá«á
<link rel= "dns-prefetch"/>
О<link rel= "preconnect">
. ááá¯ááááºážáá áºáá¯á¡ááœáẠáááºážááá¯á·ááᯠááœá²áá¯á¶ážááŒááºážááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áááá¹áá«ááºáááŸááá±á<link rel= "preconnect">
áá«áááºááŒá®ážáá¬ážáá«á<link rel= "dns-prefetch"/>
ááŒá®ážáá±á¬á·áá±á¬ááºáááºá¡áá»á¬ážááŒá®ážáá²á á€ááá á¹á ááŸá áºáá¯ááœáẠááá¬ážáá»áŸáááá¯ááºáááº-
- ááá±á¬ááºáá¬á¡áá±á¬ááºážáá»á¬ážááᯠáááºáá¶á·ááá¯ážááá¯áá«ááá¬ážá.
<link rel= "dns-prefetch" />
ááŸáá±á¬ááºáá¶á·áááºIE10 ááŸáá·áº Safari 5 ááááºážá .<link rel= "preconnect">
Chrome ááŸáá·áº Firefox ááœáẠá¡áá»áááºá¡áá±á¬áºááŒá¬ áá¶á·ááá¯ážáá²á·áá±á¬áºáááºáž Safari ááœáẠ11.1 ááŸáá·áºáᬠááá·áºááœááºážáá²á·áááºáIE/Edge ááœáẠááá¶á·ááá¯ážááá¯ááºáá±ážáá«á . á€ááá±á¬ááºáá¬áá»á¬ážááᯠáá¶á·ááá¯ážááẠááá¯á¡ááºáá«á á¡áá¯á¶ážááŒá¯áá«á<link rel= "dns-prefetch" />
á¡áááºááœá±ážáá»ááºááŸá¯á¡ááŒá áº<link rel= "preconnect">
.- áááºááẠááá¯ááááºáž 4-6 áá¯áááºááá¯áá±á¬ áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºááá¯áááºá. áááºááº
<link rel= "preconnect">
áá»áááºáááºááŸá¯ááᯠáá°áá±á¬ááºááŒááºážááŸáá·áº ááááºážááááºážááŒááºážááẠá á»á±ážááŒá®ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááᯠ4-6 ááá¯ááááºážáá»á¬ážáááºááá¯á á¡áá¯á¶ážááŒá¯ááẠáá¡ááŒá¶ááŒá¯áá«á<link rel= "dns-prefetch" />
á¡áááºážá¡ááŒá áºáá»á¬áž áááºážáá«ážáá±á¬ááŒá±á¬áá·áº ááá¯á¡ááºáá«á á¡áá¯á¶ážááŒá¯áá«á
á¡áá±ážá ááá»
ááœá±ážáá»ááºááá¯ááºáá±á¬ tag. ááá±á¬ááºáá¬ááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯ááºáá¬ááẠáááá¯á¡ááºáá«á ááá¯á·ááŒá±á¬áá·áºá á¥ááá¬á¡á¬ážááŒáá·áºá á á¬áá»ááºááŸá¬áá±á«áºááœáẠááá¯ááá¯á·áá±á¬ tag áá»á¬ážá áœá¬ááŸááá±áá«á ááá¯á·ááá¯áẠá¡ááŒá¬ážááá á¹á áááºáá»á¬ážááœáẠDNS ááŒááºáááºááŒááºáá¬ážááŸá¯ááᯠááá¯ááºáá±á¬ááºááá¯ááºáá«á
DNS ááá¯áá¬áá¬áá². á¡ááºáá¬áááºáá±á«áºááŸá áá¬áá¬áá
áºáá¯á
á®ááœáẠáá¯á¶ááá¹áá¬ááºáá°áá±á¬ áá®ážááŒá¬áž IP ááááºá
á¬áá
áºáá¯ááŸááááºá 216.58.215.78
. ááá¯ááºáá¡áááºááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááá±á¬ááºáá¬á ááááºá
á¬áá¬ážáá²ááá¯á· ááá·áºááœááºážááẠ(á¥ááá¬á google.com
) ááŸáá·áº DNS (Domain Name System) áá¬áá¬áá»á¬ážááẠáááºážááᯠáá¬áá¬á IP ááááºá
á¬ááŸáá·áº ááá¯ááºáá®ááẠ(216.58.215.78
).
IP ááááºá á¬ááᯠáá¯á¶ážááŒááºáááºá ááá±á¬ááºáá¬ááẠDNS áá¬áá¬ááᯠáá±ážááŒááºážááá«áááºá Third-party domain á¡áá áºáá áºáá¯ááá¯á· áá»áááºáááºáá¬ááœáẠ20-120 ms ááŒá¬áááºá
DNS ááẠá¡ááœááºáá¯á¶ááŒááºá áááºáá»áááŒááºážáááŸááá±á¬áºáááºážá. á¡áá»áá¯á·áá±á¬ OS áá»á¬ážááŸáá·áº ááá±á¬ááºáá¬áá»á¬ážááẠDNS queries áá»á¬ážááᯠcache áá¯ááºáááº- áááºážááẠáááºáá«ááá²áá² áá±ážááŒááºážááŸá¯áá»á¬ážááœáẠá¡áá»áááºáá¯ááºáááºáá¬á á±áááºááŒá áºáá±á¬áºáááºáž caching ááᯠá¡á¬ážááá¯ážááááá«á Linux ááœáẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá¯á¶ážáá¡áá¯ááºááá¯ááºáá«á Chrome ááœáẠDNS cache ááŸááááºá ááá¯á·áá±á¬áº áááºážááẠáá áºáááá áºáá¬ááŒá¬áááºá Windows ááẠDNS áá¯á¶á·ááŒááºááŸá¯áá»á¬ážááᯠáá«ážáááºááŒá¬ ááááºážáááºážáá¬ážáááºá
á¡ááŒáá¯áááºáááºááŸá¯
<link rel= "prerender">
URL ááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž áááŒááºááá¯ááºáá±á¬ áááºááºáá
áºáá¯ááœáẠááŒáááẠááá±á¬ááºáá¬á¡á¬áž áá±á¬ááºážááá¯áááºá á¡áá¯á¶ážááŒá¯áá°ááẠááá·áºááºááᯠááŸáááºááá·áºá¡áá« á
á¬áá»ááºááŸá¬ááᯠáá»ááºáá»ááºážááŒáááá·áºáááºá á¡áá¯á¶ážááŒá¯áá°ááẠá¡áá»áá¯á·áá±á¬á
á¬áá»ááºááŸá¬ááá¯á· ááœá¬ážáá±á¬ááºááŒá®áž áááºážáááŒáááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯ááŒá±á¬ááºáž áá±áá»á¬áá«á áááºážááẠá¡áá¯á¶ážáááºáááºá
(ááá¯á·ááá¯ááº) ဠtag ááá°ážááŒá¬ážáá±á¬áááá±á¬ááºááŸá¯ááŒá±á¬áá·áº 2019 áá¯ááŸá
áºááœáẠ<link rel= "prerender">
á¡ááá ááá±á¬ááºáá¬áá»á¬ážááœáẠáá¶á·ááá¯ážááŸá¯ áá¶á·áá»ááºážáááºá á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŒáá·áºáá«á
syntax
<link rel="prerender" href="https://my-app.com/pricing" />
href
áá±á¬ááºáá¶ááœáẠáááºá
áááºáááºáááºááá¯áá±á¬ URL ááᯠááœáŸááºááŒáá«á
áááºá¡áá»áááºááŸá¬áá¯á¶ážáááá²
á¡áá¯á¶ážááŒá¯áá°ááẠá
á¬áá»ááºááŸá¬áá
áºáá¯ááá¯á· áá±á¬ááºááœá¬ážáááºááŒá
áºááŒá±á¬ááºáž áááºá¡ááŸááºááááºáá±áá»á¬áá±á¬á¡áá«. á
á¬áá»ááºááŸá¬ A ááá¯á·áá¬áá±á¬ááºáááºáááºáá° 70% ááẠá
á¬áá»ááºááŸá¬ B ááá¯á·ááœá¬ážáá±á¬ âá¥áááºááá¯ááºáá±á«ááºážâ áá
áºáá¯ááŸááá»áŸááºá <link rel= "prerender">
á
á¬áá»ááºááŸá¬ A ááœáẠá
á¬áá»ááºááŸá¬ B ááᯠá¡ááœááºáá»ááºááŒááºá
áœá¬ ááŒáááẠáá°áá®áá±ážáá«áááºá
á¡ááœááºá¡áá»áœá¶ááá¯á¶ážáá«ááŸáá·áº. á¡ááŒáᯠrendering ááẠbandwidth ááŸáá·áº memory á¡á á¡ááœááºá
á»á±ážááŒá®ážáááºá ááá¯á¶ážáá«áá²á·á <link rel= "prerender">
á
á¬áá»ááºááŸá¬áá
áºáá¯áááºááá¯áááºá
á¡áá±ážá ááá»
ááœá±ážáá»ááºááá¯ááºáá±á¬ tag. ááá±á¬ááºáá¬ááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯ááºáá¬ááẠáááá¯á¡ááºáá²á á¥ááá¬á ááŸá±ážááœá±ážáá±á¬ áá»áááºáááºááŸá¯ááœáẠááá¯á·ááá¯áẠá¡ááá²á·ááŸááºáá¬áẠááá¯á¶áá±á¬ááºááá·áºá¡áá« áááºážááᯠáá»á áºáá»á°ááŸá¯ááá¯ááºáááºá
ááŸááºáá¬ááºááááºážáááºážááẠChrome ááẠá¡ááŒáá·áºá¡á rendering ááá¯ááºáá«áááŸáá·áº
Firefox ááŸáá·áº Safari ááẠဠtag ááᯠáá¯á¶ážá ááá¶á·ááá¯ážáá«á ááá±á¬ááºáá¬áá»á¬ážááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯ááºáá¬ááẠáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áááºážááẠáááºááŸááºáá»ááºááᯠáá»áá¯ážáá±á¬ááºááŒááºážáááŸááá«á áá«áá±ááá·áº á
áááºááá±á¬ááºážááŒá
áºáá±áá¯ááºážáá²á
á¡áá»ááºážáá»á¯ááº
á¡áá¯á¶ážááŒá¯áááº-
<link rel= "preload">
- á áá¹ááá·áºá¡áááºážáááºá¡ááœááºáž á¡áááºážá¡ááŒá áºáá áºáᯠááá¯á¡ááºáá±á¬á¡áá«<link rel= "prefetch">
- áá±á¬ááºá á¬áá»ááºááŸá¬ááœáẠáááºážááŒá Ạááá¯á¡ááºááá·áºá¡áá«<link rel= "preconnect">
- áááºááẠáááŒá¬áá® áááºážááŒá áºáá áºáᯠááá¯á¡ááºáááºááᯠáááá±á¬á¡áá«á ááá¯á·áá±á¬áº áááºážá URL á¡ááŒáá·áºá¡á á¯á¶ááᯠáááºááááá±ážáá«á<link rel= "dns-prefetch">
- á¡áá¬ážáá°áááºá áááºááẠáááŒá¬áá®ááœáẠáááºážááŒá áºáá áºáᯠááá¯á¡ááºáááºáᯠáááºáááá±á¬á¡áá«á ááá¯á·áá±á¬áº áááºážá URL á¡ááŒáá·áºá¡á á¯á¶ááᯠáááºááááá±ážáá« (ááá±á¬ááºáá¬á¡áá±á¬ááºážáá»á¬ážá¡ááœááº)<link rel= "prerender">
â á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠáááºááŸááºáá¬ážáá±á¬ á á¬áá»ááºááŸá¬ááá¯á· ááœá¬ážááẠáá±áá»á¬áá±á¬á¡áá«ááœááºá áááºááẠáááºážá display ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯áá±á¬ á¡áá«
source: www.habr.com