ãŠã§ãã®ããã©ãŒãã³ã¹ãæ¹åããæ¹æ³ã¯
ãããããããŸã ã ãããã®1ã€ã¯ãåŸã§å¿
èŠã«ãªãã³ã³ãã³ãã®ããªããŒãã§ãã CSSããªãã§ãããå
šããŒãžãã¬ãã¥ãŒã¬ã³ããªã³ã°ããŸãã¯ãã¡ã€ã³å解決ã äºåã«ãã¹ãŠãè¡ããçµæãå³åº§ã«è¡šç€ºããŸãïŒ ãã£ãããã§ããã
ããã«ã¯ãŒã«ãªã®ã¯ãå®è£
ãéåžžã«ç°¡åãªããšã§ãã 5ã€ã®<link rel>ã¿ã°ã¯ããã©ãŠã¶ã«äºåã¢ã¯ã·ã§ã³ã®ã³ãã³ããæäŸããŸãã
<link rel="prefetch" href="/style.css" as="style" /> <link rel="preload" href="/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" />
圌ããäœãããã®ãããã€äœ¿ãã®ããç°¡åã«èª¬æããŠãã ããã
移åå
ïŒ
ããªããŒãã»
ããªãã§ããã»
ããªã³ãã¯ãã»
dns-prefetchã»
ããªã¬ã³ããªã³ã°äºå§
<link rel= "preload">
ã¯ããã©ãŠã¶ã«ãªãœãŒã¹ïŒã¹ã¯ãªãããã¹ã¿ã€ã«ã·ãŒããªã©ïŒãã§ããã ãæ©ãããŒãããŠãã£ãã·ã¥ããããã«æ瀺ããŸãã ããã¯ãããŒãžãããŒããããŠããæ°ç§åŸã«ãªãœãŒã¹ãå¿
èŠã«ãªããããã»ã¹ãé«éåããå Žåã«åœ¹ç«ã¡ãŸãã
èªã¿èŸŒã¿åŸããã©ãŠã¶ã¯ãªãœãŒã¹ã«å¯ŸããŠäœãããŸããã ã¹ã¯ãªããã¯å®è¡ããããã¹ã¿ã€ã«ã·ãŒãã¯é©çšãããŸããã ãªãœãŒã¹ã¯åçŽã«ãã£ãã·ã¥ãããèŠæ±ã«å¿ããŠããã«äœ¿çšå¯èœã«ãªããŸãã
æ§æ
<link rel="preload" href="/style.css" as="style" />
href
ã¯ãããŠã³ããŒããããªãœãŒã¹ãæããŸãã
ãã©ãŠã¶ã§ããŠã³ããŒãã§ãããã®ãªãäœã§ãïŒ
style
ã·ãŒãã®ã¹ã¿ã€ã«ã
script
çšã®ã¹ã¯ãªããã
font
ã®ãã©ã³ãã
fetch
fetch()
ãŸãã¯XMLHttpRequest
ã䜿çšããŠããŒãããããªãœãŒã¹ã®fetch()
ã
- MDNã®å®å
šãªãªã¹ããåç
§ããŠãã ããã
as
å±æ§ãæå®ããããšãéèŠã§ã-ããã¯ããã©ãŠã¶ãŒãããŠã³ããŒããæ£ããåªå
é äœä»ãããèšç»ããã®ã«åœ¹ç«ã¡ãŸãã
䜿çšããå Žå
è¿ãå°æ¥ã«ãªãœãŒã¹ãå¿
èŠãªå Žåã¯ãããªããŒãã䜿çšããŸãã äŸïŒ
- å€éšãã¡ã€ã«ããã®ã«ã¹ã¿ã ãã©ã³ãïŒ
<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ã¢ãããŒãã«åŸã£ãŠã¹ã¿ã€ã«ãã¯ãªãã£ã«ã«ïŒå³æã¬ã³ããªã³ã°çšïŒãšéã¯ãªãã£ã«ã«ã®2ã€ã®éšåã«åå²ããå ŽåïŒ
<style> </style> <script> loadCSS('/app/non-critical.css'); </script>
ãã®ã¢ãããŒãã§ã¯ãéèŠã§ãªãã¹ã¿ã€ã«ã¯JavaScriptã®èµ·åæã«ã®ã¿ããŒããéå§ããŸããããã¯ãã¬ã³ããªã³ã°åŸæ°ç§ã§çºçããå ŽåããããŸãã JSãåŸ
ã€ä»£ããã«ã <link rel= "preload">
ã䜿çšããŠããŠã³ããŒããæ©ãã«éå§ããŸãã
<style> </style> <link rel="preload" href="/app/non-critical.css" as="style" /> <script> loadCSS('/app/non-critical.css'); </script>
ããªããŒããä¹±çšããªãã§ãã ãã ã ãã¹ãŠãé£ç¶ããŠããŠã³ããŒããããšããµã€ãã¯éæ³ã®ããã«é«éåãããŸããããéã«ãã©ãŠã¶ãŒãé©åã«äœæ¥ãèšç»ã§ããªããªããŸãã
ããªãã§ãããšæ··åããªãã§ãã ãã ã ããŒãžãããŒãããçŽåŸã«ãªãœãŒã¹ãå¿
èŠãªãå Žåã¯ã
<link rel= "preload">
ã䜿çšããªãã§ãã ããã ããšãã°æ¬¡ã®ããŒãžã§å¿
èŠãªå Žåã¯ã
<link rel= "prefetch">
ãŸãã
詳现
ããã¯ãããªããŒãã«é¢é£ä»ããããŠããä»ã®ãã¹ãŠã®<link>ã¿ã°ãšã¯ç°ãªãããã©ãŠã¶ã§å®è¡ããããã«
å¿
èŠãªã¿ã°ã§ãïŒãµããŒãããŠããå ŽåïŒã ãã©ãŠã¶ã¯ã
<link rel="preload">
æå®ããããªãœãŒã¹ãããŠã³ããŒãããå¿
èŠããããŸãã ä»ã®å Žåã§ã¯ãããšãã°ãäœéæ¥ç¶ã§å®è¡ããŠããå ŽåãããªããŒããç¡èŠããå ŽåããããŸãã
åªå
é äœ ããŸããŸãªãªãœãŒã¹ïŒã¹ã¿ã€ã«ãã¹ã¯ãªããããã©ã³ããªã©ïŒã«ããã©ãŠã¶ãŒã¯éåžžãæãéèŠãªãªãœãŒã¹ãæåã«èªã¿èŸŒãããã«ããŸããŸãªåªå
é äœãå²ãåœãŠãŸãã ãã®å Žåããã©ãŠã¶ã¯aså±æ§ãåªå
ããŸãã Chromeãã©ãŠã¶ã®å Žå
ãåªå
é äœã®å
šè¡šãèŠãããšãã§ããŸãã

å
èªã¿
<link rel= "prefetch">
ã¯ãããã¯ã°ã©ãŠã³ãã§ãªãœãŒã¹ïŒããšãã°ãã¹ã¯ãªãããã¹ã¿ã€ã«ã·ãŒãïŒãããŠã³ããŒãããŠãã£ãã·ã¥ããããã«ãã©ãŠã¶ãŒã«èŠæ±ããŸãã ããŠã³ããŒãã¯äœãåªå
床ã§å®è¡ããããããããéèŠãªãªãœãŒã¹ã«å¹²æžããŸããã ããã¯ã次ã®ããŒãžã®ãªãœãŒã¹ãå¿
èŠã§ãäºåã«ãã£ãã·ã¥ãããå Žåã«äŸ¿å©ã§ãã
ããã§ãããã©ãŠã¶ã¯èªã¿èŸŒã¿åŸã«ãªãœãŒã¹ãåŠçããŸããã ã¹ã¯ãªããã¯å®è¡ããããã¹ã¿ã€ã«ã·ãŒãã¯é©çšãããŸããã ãªãœãŒã¹ã¯åçŽã«ãã£ãã·ã¥ãããèŠæ±ã«å¿ããŠããã«äœ¿çšå¯èœã«ãªããŸãã
æ§æ
<link rel="prefetch" href="/style.css" as="style" />
href
ã¯ãããŠã³ããŒããããªãœãŒã¹ãæããŸãã
ãã©ãŠã¶ã§ããŠã³ããŒãã§ãããã®ãªãäœã§ãïŒ
style
ã·ãŒãã®ã¹ã¿ã€ã«ã
script
çšã®ã¹ã¯ãªããã
font
ã®ãã©ã³ãã
fetch
fetch()
ãŸãã¯XMLHttpRequest
ã䜿çšããŠããŒãããããªãœãŒã¹ã®fetch()
ã
- MDNã®å®å
šãªãªã¹ããåç
§ããŠãã ããã
as
å±æ§ãæå®ããããšãéèŠã§ã-ããã¯ããã©ãŠã¶ãŒãããŠã³ããŒããæ£ããåªå
é äœä»ãããèšç»ããã®ã«åœ¹ç«ã¡ãŸãã
䜿çšããå Žå
ä»ã®ããŒãžãããªãœãŒã¹ãããŠã³ããŒãããã«ã¯ãå¥ã®ããŒãžãããªãœãŒã¹ãå¿
èŠã§ãåŸã§ãã®ããŒãžã®ã¬ã³ããªã³ã°ãé«éåããããã«ãªãœãŒã¹ãããªããŒããããå Žåã äŸïŒ
- ãªã³ã©ã€ã³ã¹ãã¢ãããããŠãŒã¶ãŒã®40ïŒ
ãã¡ã€ã³ããŒãžãã補åããŒãžã«ç§»åããŸãã CSSããã³JSãã¡ã€ã«ãèªã¿èŸŒãã§è£œåããŒãžãã¬ã³ããªã³ã°ããå Žåã¯ã
<link rel= "prefetch">
ã䜿çšããŸãã
- 1ããŒãžã®ã¢ããªã±ãŒã·ã§ã³ããããç°ãªãããŒãžãç°ãªãããã±ãŒãžãããŒãããŸãã ãŠãŒã¶ãŒãããŒãžã«ã¢ã¯ã»ã¹ãããšããã®ããŒãžãåç
§ãããã¹ãŠã®ããŒãžã®ããã±ãŒãžãããªããŒãã§ããŸãã
ããããããã®ã¿ã°ã¯ã©ã®ããªã¥ãŒã ã§ãå®å
šã«äœ¿çšã§ããŸã ã éåžžããã©ãŠã¶ã¯æãäœãåªå
床ã§ããªãã§ãããèšç»ããããã誰ãæ°ã«ããŸããã ãŠãŒã¶ãŒãã©ãã£ãã¯ãæ¶è²»ããè²»çšããããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
ç·æ¥ã®ãªã¯ãšã¹ãã§ã¯ãããŸãã ã æ°ç§ã§ãªãœãŒã¹ãå¿
èŠãªå Žåã¯ã
<link rel= "prefetch">
䜿çšããªãã§ãã ããã ãã®å Žåã
<link rel= "preload">
ãŸãã
詳现
ãªãã·ã§ã³ã®ã¿ã° ã ãã©ãŠã¶ã¯ãã®æ瀺ã«åŸãå¿
èŠã¯ãããŸãããããšãã°ãé
ãæ¥ç¶ã®å Žåã¯ç¡èŠã§ããŸãã
Chromeã®åªå
床 ã Chromeã§ã¯ãéåžžã
<link rel= "prefetch">
æå°ã®åªå
床ïŒ
å®å
šãªåªå
床ã®è¡šãåç
§ïŒã§ãã€ãŸãä»ã®ãã¹ãŠãããŠã³ããŒãããåŸã«å®è¡ãããŸãã
äºåæ¥ç¶
<link rel= "preconnect">
ã¯ãå°æ¥æ¥ç¶ãé«éåããå Žåããã©ãŠã¶ã«ãã¡ã€ã³ãžã®äºåæ¥ç¶ãèŠæ±ããŸãã
ãã©ãŠã¶ã¯ãæ°ãããµãŒãããŒãã£ãã¡ã€ã³ãããªãœãŒã¹ãååŸããå Žåãæ¥ç¶ã確ç«ããå¿
èŠããããŸãã ããšãã°ãGoogle FontsãããŠã³ããŒãããå ŽåãCDNããReactãã©ã³ããååŸããããAPIãµãŒããŒããJSONå¿çãèŠæ±ãããããŸãã
æ°ããæ¥ç¶ã®ç¢ºç«ã«ã¯éåžžãæ°çŸããªç§ããããŸãã äžåºŠè¡ãããŸããããŸã æéãããããŸãã äºåã«æ¥ç¶ã確ç«ããŠããå Žåã¯ãæéãç¯çŽãããã®ãã¡ã€ã³ãããªãœãŒã¹ãããéãããŠã³ããŒãããŸãã
æ§æ
<link rel= "preconnect" href="https://api.my-app.com" />
href
ã¯ãIPã¢ãã¬ã¹ã決å®ãããã¡ã€ã³åã瀺ããŸãã ãã¬ãã£ãã¯ã¹ä»ãïŒ
https://domain.com
ïŒãŸãã¯ãã¬ãã£ãã¯ã¹ãªãïŒ
//domain.com
ïŒã§æå®ã§ããŸãã
䜿çšããå Žå
éèŠãªã¹ã¿ã€ã«ãã¹ã¯ãªããããŸãã¯ç»åããããã
ããã«ããŠã³ããŒããã
å¿
èŠããããããªãœãŒã¹URLããŸã ããããªã
ãã¡ã€ã³ã«äœ¿çšããŸã ã äŸïŒ
- ã¢ããªã±ãŒã·ã§ã³ã¯
my-app.com
ã§ãã¹ãããã my-app.com
AJAXãªã¯ãšã¹ããapi.my-app.com
ãŸããç¹å®ã®ãªã¯ãšã¹ãã¯JSããåçã«äœæããããããäºåã«ã¯ããããŸããã ãã¡ã€ã³ãžã®äºåæ¥ç¶ã«ã¿ã°ã䜿çšããããšã¯éåžžã«é©åã§ãã
- ã¢ããªã±ãŒã·ã§ã³ã¯
my-app.com
ã§ãã¹ããããGoogleãã©ã³ãã䜿çšããŸãã ãããã¯2段éã§ããŠã³ããŒããããŸããæåã«ãCSSãã¡ã€ã«ããã¡ã€ã³fonts.googleapis.com
ããããŠã³ããŒãããã次ã«ãã®ãã¡ã€ã«ãfonts.gstatic.com
ãããã©ã³ããèŠæ±ããŸãã CSSãã¡ã€ã«ãããŒããããŸã§ã fonts.gstatic.com
ããã©ã®ç¹å®ã®ãã©ã³ããã¡ã€ã«ãå¿
èŠããç¥ãããšã¯ã§ããªããããäºåã®æ¥ç¶ã®ã¿ãäºåã«ç¢ºç«ã§ããŸãã
ãã®ã¿ã°ã䜿çšã㊠ãæ¥ç¶ãäºåèšå®ããããš
ã«ãããäžéšã®ãµãŒãããŒãã£ã®ã¹ã¯ãªãããé«éåããããå°ãã¹ã¿ã€ã«ãèšå®ããŸãã
èåŸ
ããªãã§ãã ãã ã æ¥ç¶ã®ç¢ºç«ãšç¶æã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã«ãšã£ãŠé«äŸ¡ãªæäœã§ãã æ倧4ã6åã®ãã¡ã€ã³ã«ãã®ã¿ã°ã䜿çšããŸãã
詳现
ãªãã·ã§ã³ã®ã¿ã° ã ãã©ãŠã¶ã¯ãã®æ瀺ã«åŸãå¿
èŠããªããããšãã°ãå€ãã®æ¥ç¶ããã§ã«ç¢ºç«ãããŠããå ŽåããŸãã¯ä»ã®å Žåã«ããã®æ瀺ãç¡èŠã§ããŸãã
æ¥ç¶ããã»ã¹ãå«ãŸããŸã ã åãµã€ãã«æ¥ç¶ããã«ã¯ããã©ãŠã¶ã§æ¬¡ã®æé ãå®è¡ããå¿
èŠããããŸãã
- DNS解決 ã æå®ããããã¡ã€ã³åïŒ
google.com
ïŒã®ãµãŒããŒã®IPã¢ãã¬ã¹ïŒ 216.58.215.78
ïŒã216.58.215.78
ãŸãã - ãã³ãã·ã§ã€ã¯TCP ã ãµãŒããŒãžã®TCPæ¥ç¶ãéå§ããããã®ãã±ãã亀æïŒã¯ã©ã€ã¢ã³ãâãµãŒããŒâã¯ã©ã€ã¢ã³ãïŒã
- TLSãã³ãã·ã§ã€ã¯ïŒHTTPSãµã€ãã®ã¿ïŒ ã å®å
šãªTLSã»ãã·ã§ã³ãéå§ããããã®2ã©ãŠã³ãã®ãã±ãã亀æïŒã¯ã©ã€ã¢ã³ãâãµãŒããŒâã¯ã©ã€ã¢ã³ãâãµãŒããŒâã¯ã©ã€ã¢ã³ãïŒã
泚ïŒHTTP / 3ã¯ããã³ãã·ã§ã€ã¯ã¡ã«ããºã ãæ¹åããã³é«éåããŸãããããã§ããŸã ãŸã å
ã§ãã
dns-prefetch
<link rel= "dns-prefetch">
ã¯ãããã«æ¥ç¶ããŠæåã®æ¥ç¶ãé«éåããå Žåãäºåã«ãã¡ã€ã³ã®DNSã解決ããããã«ãã©ãŠã¶ãŒã«èŠæ±ããŸãã
ãã©ãŠã¶ã¯ãæ°ãããµãŒãããŒãã£ãã¡ã€ã³ãããªãœãŒã¹ãååŸããå Žåããã¡ã€ã³ã®IPã¢ãã¬ã¹ã決å®ããå¿
èŠããããŸãã ããšãã°ãGoogleãã©ã³ããReactãã©ã³ããCDNããããŠã³ããŒãããããAPIãµãŒããŒããJSONå¿çãèŠæ±ãããããŸãã
æ°ãããã¡ã€ã³ããšã«ãDNS解決ã«ã¯éåžžçŽ20ã120ããªç§ããããŸãã ããã¯ãç¹å®ã®ãã¡ã€ã³ããã®æåã®ãªãœãŒã¹ã®ããŒãã«ã®ã¿åœ±é¿ããŸãããããã§ãé
延ãè¡šããŸãã DNS解決ãäºåã«å®è£
ããå Žåãæéãç¯çŽãããªãœãŒã¹ãããéãããŒãããŸãã
æ§æ
<link rel= "dns-prefetch" href="https://api.my-app.com" />
href
ã¯ãIPã¢ãã¬ã¹ãèšå®ãããã¡ã€ã³åã瀺ããŸãã ãã¬ãã£ãã¯ã¹ä»ãïŒ
https://domain.com
ïŒãŸãã¯ãã¬ãã£ãã¯ã¹ãªãïŒ
//domain.com
ïŒã§æå®ã§ããŸãã
䜿çšããå Žå
ãã©ãŠã¶ãäºåã«ç¥ããªããªãœãŒã¹ãããããããŠã³ããŒããã
ããã«ããã«
å¿
èŠã«ãªããã¡ã€ã³ã«äœ¿çšããŸã ã äŸïŒ
- ã¢ããªã±ãŒã·ã§ã³ã¯
my-app.com
ã§ãã¹ãããã my-app.com
AJAXãªã¯ãšã¹ããapi.my-app.com
ãŸããç¹å®ã®ãªã¯ãšã¹ãã¯JSããåçã«äœæããããããäºåã«ã¯ããããŸããã ãã¡ã€ã³ãžã®äºåæ¥ç¶ã«ã¿ã°ã䜿çšããããšã¯éåžžã«é©åã§ãã
- ã¢ããªã±ãŒã·ã§ã³ã¯
my-app.com
ã§ãã¹ããããGoogleãã©ã³ãã䜿çšããŸãã ãããã¯2段éã§ããŠã³ããŒããããŸããæåã«ãCSSãã¡ã€ã«ããã¡ã€ã³fonts.googleapis.com
ããããŠã³ããŒãããã次ã«ãã®ãã¡ã€ã«ãfonts.gstatic.com
ãããã©ã³ããèŠæ±ããŸãã CSSãã¡ã€ã«ãããŠã³ããŒããããŸã§ã fonts.gstatic.com
ããå¿
èŠãªç¹å®ã®ãã©ã³ããã¡ã€ã«ãç¥ãããšã¯ã§ããŸããããããã£ãŠãäºåã®æ¥ç¶ã®ã¿ã確ç«ããããšãã§ããŸãã
ãã®ã¿ã°ã䜿çšã㊠ãæ¥ç¶ãäºåèšå®ããããš
ã«ãããäžéšã®ãµãŒãããŒãã£ã®ã¹ã¯ãªãããé«éåããããå°ãã¹ã¿ã€ã«ãèšå®ããŸãã
<link rel= "dns-prefetch"/>
ããã³<link rel= "preconnect">
ã®åæ§ã®ä»æ§ã«æ³šæããŠãã ããã åããã¡ã€ã³ã§ããããäžç·ã«äœ¿çšããããšã¯éåžžæå³ããããŸããã <link rel= "preconnect">
ãã§ã«<link rel= "dns-prefetch"/>
ãªã©ãå«ãŸããŠããŸãã ããã¯ã次ã®2ã€ã®å Žåã«æ£åœåã§ããŸãã
- å€ããã©ãŠã¶ããµããŒãããã ã IE10ããã³Safari 5以éã
<link rel= "dns-prefetch" />
ããµããŒããããŠããŸãã <link rel= "preconnect">
ã¯ChromeãšFirefoxã§ãã°ãããµããŒããããŠããŸãããã11.1ã§ã®ã¿Safariã«è¿œå ãããIE / Edgeã§ã¯ãŸã ãµããŒããããŠããŸãã ã ãããã®ãã©ãŠã¶ãŒããµããŒãããå¿
èŠãããå Žåã¯ã <link rel= "preconnect">
ãšããŠ<link rel= "dns-prefetch" />
ã䜿çšããŸãã - 4ã6å以äžã®ãã¡ã€ã³ãžã®æ¥ç¶ãé«éåãããå Žå ã
<link rel= "preconnect">
ã4ã6åãè¶
ãããã¡ã€ã³ã§äœ¿çšããããšã¯ãå§ãããŸãããæ¥ç¶ã®ç¢ºç«ãšç¶æã¯é«äŸ¡ãªæäœã§ããããã§ãã <link rel= "dns-prefetch" />
ã¯æ¶è²»ãããªãœãŒã¹ãå°ãªããããå¿
èŠã«å¿ããŠäœ¿çšããŸãã
詳现
ãªãã·ã§ã³ã®ã¿ã° ã ãã©ãŠã¶ã¯ãã®æ瀺ã«åŸãå¿
èŠããªããããããšãã°ãããŒãžã«ãã®ãããªã¿ã°ãå€æ°ããå ŽåããŸãã¯ä»ã®å Žåã«ãDNS解決ãå®è¡ããªãå ŽåããããŸãã
DNSãšã¯äœã§ãã ã ã€ã³ã¿ãŒãããäžã®åãµãŒããŒã«ã¯ã
216.58.215.78
ãããªäžæã®IPã¢ãã¬ã¹ããããŸãã ãã©ãŠã¶ãŒã®ã¢ãã¬ã¹ããŒã«ã¯ãéåžžããµã€ãåïŒäŸïŒ
google.com
ïŒãå
¥åãããDNSïŒãã¡ã€ã³ããŒã ã·ã¹ãã ïŒãµãŒããŒã¯ããããµãŒããŒIPã¢ãã¬ã¹ïŒ
216.58.215.78
ïŒã«ãããããŸãã
IPã¢ãã¬ã¹ãå€å¥ããã«ã¯ããã©ãŠã¶ãŒã¯DNSãµãŒããŒã«ç
§äŒããå¿
èŠããããŸãã æ°ãããµãŒãããŒãã£ãã¡ã€ã³ã«æ¥ç¶ããå Žåã20ã120ããªç§ããããŸãã
DNSã¯ãã£ãã·ã¥ãããŸãããããŸãä¿¡é Œã§ããŸãã ã äžéšã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšãã©ãŠã¶ã¯DNSã¯ãšãªããã£ãã·ã¥ããŸããããã«ãããç¹°ãè¿ãã¯ãšãªã®æéãç¯çŽã§ããŸããããã£ãã·ã¥ã«é Œãããšã¯ã§ããŸããã Linuxã§ã¯ãéåžžã¯ãŸã£ããæ©èœããŸããã Chromeã«ã¯DNSãã£ãã·ã¥ããããŸããã1åéããç¶ããŸããã Windowsã¯ãDNSå¿çã5æ¥éãã£ãã·ã¥ããŸãã
ãã¬ã¬ã³ããŒ
<link rel= "prerender">
ã¯ããã©ãŠã¶ã«URLãããŠã³ããŒãããé衚瀺ã®ã¿ãã«è¡šç€ºããããã«èŠæ±ããŸãã ãŠãŒã¶ãŒããªã³ã¯ãã¯ãªãã¯ãããšãããŒãžãããã«è¡šç€ºãããŸãã ããã¯ããŠãŒã¶ãŒãç¹å®ã®ããŒãžã«ã¢ã¯ã»ã¹ãããã®è¡šç€ºãé«éåããããšã確å®ãªå Žåã«åœ¹ç«ã¡ãŸãã
ãã®ã¿ã°ã®éåžžã«åªããå¹æïŒãŸãã¯ãã®ããïŒã«ããããããã2019幎ã«
<link rel= "prerender">
äž»èŠãªãã©ãŠã¶ã§ååã«ãµããŒããããŠããŸããã 詳现ã«ã€ããŠã¯ã
以äžãåç
§
ããŠãã ããã
æ§æ
<link rel="prerender" href="https://my-app.com/pricing" />
href
ã¯ãããã¯ã°ã©ãŠã³ãã§ã¬ã³ããªã³ã°ãå®è¡ããURLãæããŸãã
䜿çšããå Žå
ãŠãŒã¶ãŒãç¹å®ã®ããŒãžã«ç§»åããããšãæ¬åœã«ç¢ºä¿¡ããŠããå Žå ã ããŒãžAãžã®èšªåè
ã®70ïŒ
ãããŒãžBã«ç§»åããããã³ãã«ããããå ŽåãããŒãžAã®
<link rel= "prerender">
ã¯ããŒãžBãéåžžã«ãã°ãã衚瀺ããã®ã«åœ¹ç«ã¡ãŸãã
èåŸ
ããªãã§ãã ãã ã äºåã¬ã³ããªã³ã°ã¯ããã©ãã£ãã¯ãšã¡ã¢ãªã®ç¹ã§éåžžã«é«äŸ¡ã§ãã è€æ°ã®ããŒãžã«
<link rel= "prerender">
䜿çšããªãã§ãã ããã
詳现
ãªãã·ã§ã³ã®ã¿ã° ã ãã©ãŠã¶ã¯ãã®æ瀺ã«åŸãå¿
èŠã¯ãªããããšãã°ãäœéæ¥ç¶ãååãªç©ºãã¡ã¢ãªããªããšãã«ç¡èŠã§ããŸãã
ã¡ã¢ãªãç¯çŽããããã
Chromeã¯å®å
šãªã¬ã³ããªã³ã°ãå®è¡ãã ã
NoStateãããªããŒãããŸã ã ã€ãŸããChromeã¯ããŒãžãšãã®ãã¹ãŠã®ãªãœãŒã¹ãããŒãããŸãããã¬ã³ããªã³ã°ãããJavaScriptãå®è¡ããŸããã
Firefoxããã³Safariã¯ããã®ã¿ã°ããŸã£ãããµããŒãããŠããŸããã ãã©ãŠã¶ã¯ãã®æ瀺ã«åŸãå¿
èŠããªããããããã¯ä»æ§ã«éåããŸããã ãšã«ããæ²ããã Firefox
ã®å®è£
ãã°ã¯7幎éå
¬éãããŠããŸãã Safari
ããã®ã¿ã°ããµããŒãããŠããªããšããå ±åããããŸãã
ãŸãšã
䜿çšïŒ
<link rel= "preload">
-æ°ç§ã§ãªãœãŒã¹ãå¿
èŠãªå Žå
<link rel= "prefetch">
-次ã®ããŒãžã§ãªãœãŒã¹ãå¿
èŠãªå Žå
<link rel= "preconnect">
-ãªãœãŒã¹ãããã«å¿
èŠã«ãªãããšãããã£ãŠãããããã®å®å
šãªURLããŸã ããããªãå Žå
<link rel= "dns-prefetch">
-åæ§ã«ãããã«ãªãœãŒã¹ãå¿
èŠã«ãªãããšãããã£ãŠãããããã®å®å
šãªURLããŸã ããããªãå ŽåïŒå€ããã©ãŠã¶ãŒã®å ŽåïŒ
<link rel= "prerender">
-ãŠãŒã¶ãŒãç¹å®ã®ããŒãžã«ç§»åãã衚瀺ãé«éåããããšã確å®ãªå Žå