JavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ãæé©åããããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããŸããããäŸåé¢ä¿ã®æé©åãã€ã³ããŒãé åºãããªããŒãæè¡ã«ã€ããŠè§£èª¬ããŸããäžçäžã®éçºè åãã
JavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿åªå 床ïŒã€ã³ããŒãäŸåé¢ä¿ã®æé©å
å€åã®æ¿ãããŠã§ãéçºã®äžçã§ã¯ãJavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ãæé©åããããšããé«éã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«äžå¯æ¬ ã§ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãããè€éã«ãªããã³ãŒãããŒã¹ãå€§èŠæš¡åãã倿°ã®äŸåé¢ä¿ãæã€ããã«ãªããšããããã®ã¢ãžã¥ãŒã«ãã©ãã ãéãèªã¿èŸŒãŸãå®è¡ããããã«ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã倧ããå·Šå³ãããŸãããã®ããã°èšäºã§ã¯ãJavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿åªå 床ã®è€éããæ·±ãæãäžããã€ã³ããŒãäŸåé¢ä¿ã®æé©åæè¡ã«çŠç¹ãåœãŠãäžçäžã®ãŠãŒã¶ãŒã®ããã«ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããæ¹æ³ãæ¢ããŸãã
ã¢ãžã¥ãŒã«èªã¿èŸŒã¿ã®éèŠæ§ãçè§£ãã
JavaScriptã¢ãžã¥ãŒã«ã¯ãçŸä»£ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®æ§æèŠçŽ ã§ããããã«ãããéçºè ã¯è€éãªã³ãŒãã管çããããåå©çšå¯èœãªåäœã«åå²ã§ããéçºãä¿å®ãå ±åäœæ¥ã容æã«ãªããŸãããããããããã®ã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿æ¹æ³ã¯ãç¹ã«ã€ã³ã¿ãŒãããæ¥ç¶ãé ãããŸãã¯æ§èœã®äœãããã€ã¹ã䜿çšããŠãããŠãŒã¶ãŒã«ãšã£ãŠããŠã§ããµã€ãã®èªã¿èŸŒã¿æéã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸããèªã¿èŸŒã¿ãé ãã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã®äžæºãé«ãçŽåž°çããããŠæçµçã«ã¯ããžãã¹ããããžã§ã¯ããžã®æªåœ±é¿ã«ã€ãªããå¯èœæ§ããããŸãããããã£ãŠã广çãªã¢ãžã¥ãŒã«èªã¿èŸŒã¿ã®æé©åã¯ãæåãããŠã§ãéçºæŠç¥ã®éèŠãªèŠçŽ ã§ãã
æšæºçãªã¢ãžã¥ãŒã«èªã¿èŸŒã¿ããã»ã¹
æé©åã«é£ã³èŸŒãåã«ãæšæºçãªã¢ãžã¥ãŒã«èªã¿èŸŒã¿ããã»ã¹ãçè§£ããããšãäžå¯æ¬ ã§ãããã©ãŠã¶ãimportæã«ééãããšãäžé£ã®ã¹ããããéå§ããŸãã
- è§£æïŒãã©ãŠã¶ã¯JavaScriptãã¡ã€ã«ãè§£æããã€ã³ããŒãæãç¹å®ããŸãã
- ãã§ããïŒãã©ãŠã¶ã¯å¿ èŠãªã¢ãžã¥ãŒã«ãã¡ã€ã«ãååŸããŸãããã®ããã»ã¹ã¯éåžžããµãŒããŒãžã®HTTPãªã¯ãšã¹ãã䌎ããŸãã
- è©äŸ¡ïŒã¢ãžã¥ãŒã«ãã¡ã€ã«ãããŠã³ããŒãããããšããã©ãŠã¶ã¯ã³ãŒããè©äŸ¡ãããããã¬ãã«ã®ã³ãŒããå®è¡ããŠãå¿ èŠãªå€æ°ã颿°ããšã¯ã¹ããŒãããŸãã
- å®è¡ïŒæåŸã«ãã€ã³ããŒããéå§ããå ã®ã¹ã¯ãªãããå®è¡ãããã€ã³ããŒããããã¢ãžã¥ãŒã«ã䜿çšã§ããããã«ãªããŸãã
ãããã®åã¹ãããã§è²»ããããæéããå šäœã®èªã¿èŸŒã¿æéã«å¯äžããŸããæé©åã¯ãåã¹ããããç¹ã«ãã§ãããšè©äŸ¡ã®æ®µéã§è²»ããããæéãæå°éã«æããããšãç®æããŸãã
äŸåé¢ä¿ã®æé©åæŠç¥
äŸåé¢ä¿ã®åŠçæ¹æ³ãæé©åããããšã¯ãã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ããã©ãŒãã³ã¹ãåäžãããäžå¿çãªèŠçŽ ã§ããããã€ãã®æŠç¥ãæ¡çšããããšãã§ããŸãã
1. ã³ãŒãåå²
ã³ãŒãåå²ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããããå°ããªãã£ã³ã¯ã«åå²ããæè¡ã§ãã巚倧ãªåäžã®JavaScriptãã¡ã€ã«ãèªã¿èŸŒã代ããã«ããã©ãŠã¶ã¯æåã«å¿ èŠãªãã£ã³ã¯ã®ã¿ãèªã¿èŸŒã¿ãéèŠåºŠã®äœãã³ãŒãã®èªã¿èŸŒã¿ãé å»¶ãããããšãã§ããŸããããã«ãããç¹ã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã«ãããŠãåæèªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ã§ããŸããWebpackãRollupãParcelãªã©ã®çŸä»£ã®ãã³ãã©ã䜿ãã°ãã³ãŒãåå²ã¯æ¯èŒçç°¡åã«å®è£ ã§ããŸãã
äŸïŒå€§èŠæš¡ãªeã³ããŒã¹ãµã€ããæ³åããŠã¿ãŠãã ãããåæããŒãžèªã¿èŸŒã¿ã§ã¯ãååäžèЧããŒãžãšåºæ¬çãªãŠã§ããµã€ãã¬ã€ã¢ãŠãã®ã³ãŒãã®ã¿ãå¿ èŠãããããŸãããã·ã§ããã³ã°ã«ãŒãããŠãŒã¶ãŒèªèšŒãåå詳现ããŒãžã®ã³ãŒãã¯ãå¥ã ã®ãã£ã³ã¯ã«åå²ãããŠãŒã¶ãŒããããã®ã»ã¯ã·ã§ã³ã«ç§»åãããšãã«ã®ã¿ãªã³ããã³ãã§èªã¿èŸŒãããšãã§ããŸãããã®ãé å»¶èªã¿èŸŒã¿ãã¢ãããŒãã¯ãäœæããã©ãŒãã³ã¹ãåçã«åäžãããããšãã§ããŸãã
2. é å»¶èªã¿èŸŒã¿ïŒLazy LoadingïŒ
é å»¶èªã¿èŸŒã¿ã¯ãã³ãŒãåå²ãšå¯æ¥ã«é¢é£ããŠããŸããããã¯ãå¿ é ã§ã¯ãªãJavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ããå®éã«å¿ èŠã«ãªããŸã§é ãããããšãå«ã¿ãŸããããã¯ãæåã¯é衚瀺ã«ãªã£ãŠããã³ã³ããŒãã³ãã«é¢é£ããã¢ãžã¥ãŒã«ãããŸã çºçããŠããªããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«é¢é£ããã¢ãžã¥ãŒã«ã«é©çšã§ããŸããé å»¶èªã¿èŸŒã¿ã¯ãåæèªã¿èŸŒã¿æéãççž®ããã€ã³ã¿ã©ã¯ãã£ãæ§ãåäžãããããã®åŒ·åãªæè¡ã§ãã
äŸïŒãŠãŒã¶ãŒãè€éãªã€ã³ã¿ã©ã¯ãã£ãã¢ãã¡ãŒã·ã§ã³ã®ããã©ã³ãã£ã³ã°ããŒãžã«ã¢ã¯ã»ã¹ãããšããŸããã¢ãã¡ãŒã·ã§ã³ã®ã³ãŒããããã«èªã¿èŸŒãã®ã§ã¯ãªããé å»¶èªã¿èŸŒã¿ã䜿çšããŠããŠãŒã¶ãŒãããŒãžãäžã«ã¹ã¯ããŒã«ããããç¹å®ã®ãã¿ã³ãã¯ãªãã¯ãããããåŸã«ã®ã¿èªã¿èŸŒãããšãã§ããŸããããã«ãããåæã¬ã³ããªã³ã°äžã®äžèŠãªèªã¿èŸŒã¿ãé²ããŸãã
3. ããªãŒã·ã§ã€ãã³ã°ïŒTree ShakingïŒ
ããªãŒã·ã§ã€ãã³ã°ã¯ãJavaScriptãã³ãã«ããæªäœ¿çšã®ã³ãŒãïŒãããã³ãŒãïŒãåé€ããããã»ã¹ã§ããã¢ãžã¥ãŒã«ãã€ã³ããŒããããšããå¿ ããããããæäŸãããã¹ãŠã®æ©èœã䜿çšããããã§ã¯ãããŸãããããªãŒã·ã§ã€ãã³ã°ã¯ããã«ãããã»ã¹äžã«æªäœ¿çšã®ã³ãŒããç¹å®ããŠåé€ãããã³ãã«ãµã€ãºãå°ããããŠèªã¿èŸŒã¿æéãççž®ããŸããWebpackãRollupã®ãããªçŸä»£ã®ãã³ãã©ã¯ãèªåçã«ããªãŒã·ã§ã€ãã³ã°ãå®è¡ããŸãã
äŸïŒ20åã®é¢æ°ãæã€ãŠãŒãã£ãªãã£ã©ã€ãã©ãªãã€ã³ããŒãããããã³ãŒãã§ã¯3ã€ãã䜿çšããªãã£ããšããŸããããªãŒã·ã§ã€ãã³ã°ã¯ãæªäœ¿çšã®17åã®é¢æ°ãåé€ããçµæãšããŠãã³ãã«ãå°ãããªããŸãã
4. ã¢ãžã¥ãŒã«ãã³ãã©ãšãã©ã³ã¹ãã€ã©
ã¢ãžã¥ãŒã«ãã³ãã©ïŒWebpackãRollupãParcelãªã©ïŒãšãã©ã³ã¹ãã€ã©ïŒBabelïŒã¯ãäŸåé¢ä¿ã®æé©åã«ãããŠéèŠãªåœ¹å²ãæãããŸãããããã¯ãã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ãäŸåé¢ä¿ã®è§£æ±ºãã³ãŒãåå²ãããªãŒã·ã§ã€ãã³ã°ãªã©ã®è€éããåŠçããŸãããããžã§ã¯ãã®ããŒãºã«åã£ããã³ãã©ãéžæããããã©ãŒãã³ã¹ãæé©åããããã«èšå®ããŠãã ããããããã®ããŒã«ã¯ãäŸåé¢ä¿ã®ç®¡çãšã¯ãã¹ãã©ãŠã¶äºææ§ã®ããã®ã³ãŒã倿ããã»ã¹ãå€§å¹ ã«ç°¡çŽ åã§ããŸãã
äŸïŒWebpackã¯ãJavaScriptã®æå°åãç»åã®æé©åãã³ãŒãåå²ã®é©çšãªã©ãã³ãŒããæé©åããããã®ããŸããŸãªããŒããŒããã©ã°ã€ã³ã䜿çšããããã«èšå®ã§ããŸãã
ã€ã³ããŒãé åºãšæã®æé©å
ã¢ãžã¥ãŒã«ãã€ã³ããŒããããé åºãã€ã³ããŒãæã®æ§é ããèªã¿èŸŒã¿ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
1. éèŠãªã€ã³ããŒããåªå ãã
ããŒãžã®åæã¬ã³ããªã³ã°ã«äžå¯æ¬ ãªã¢ãžã¥ãŒã«ãæåã«èªã¿èŸŒãããã«ããŠãã ããããããã¯ãã¢ããªã±ãŒã·ã§ã³ãã³ã³ãã³ããå³åº§ã«è¡šç€ºããããã«*絶察ã«*å¿ èŠãªã¢ãžã¥ãŒã«ã§ããããã«ããããŠã§ããµã€ãã®éèŠãªéšåãã§ããã ãæ©ã衚瀺ãããããã«ãªããŸãããšã³ããªãŒãã€ã³ãã§ã®ã€ã³ããŒãæã®æ éãªèšç»ãäžå¯æ¬ ã§ãã
2. ã€ã³ããŒããã°ã«ãŒãåãã
ã€ã³ããŒãæãè«ççã«æŽçããŸããé¢é£ããã€ã³ããŒãããŸãšããããšã§ãå¯èªæ§ãšä¿å®æ§ãåäžããŸããäŸãã°ããã¹ãŠã®ã¹ã¿ã€ãªã³ã°é¢é£ã®ã€ã³ããŒãããã¹ãŠã®ãµãŒãããŒãã£ã©ã€ãã©ãªã®ã€ã³ããŒãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³åºæã®ã€ã³ããŒããã°ã«ãŒãåããããšãæ€èšããŠãã ããã
3. ã€ã³ããŒãã®æ°ãæžããïŒå¯èœãªå ŽåïŒ
ã¢ãžã¥ãŒã«æ§ã¯æçã§ãããéå°ãªã€ã³ããŒãã¯ãªãŒããŒããããå¢å ãããå¯èœæ§ããããŸããé©åãªå Žåã«ã¯ãã€ã³ããŒããçµ±åããããšãæ€èšããŠãã ãããäŸãã°ãåäžã®ã©ã€ãã©ãªããå€ãã®é¢æ°ã䜿çšããå Žåãã©ã€ãã©ãªå šäœãåäžã®åå空éãšããŠã€ã³ããŒããããã®åå空éãä»ããŠåã ã®é¢æ°ã«ã¢ã¯ã»ã¹ããæ¹ãå¹ççãªå ŽåããããŸãããã ããããã¯ããªãŒã·ã§ã€ãã³ã°ã®å©ç¹ãšãã©ã³ã¹ãåãå¿ èŠããããŸãã
äŸïŒä»¥äžã®ããã«ãã代ããã«ïŒ
import { functionA } from 'library';
import { functionB } from 'library';
import { functionC } from 'library';
以äžãæ€èšããŠãã ããïŒ
import * as library from 'library';
library.functionA();
library.functionB();
library.functionC();
ããªããŒããããªãã§ãããããªã³ãã¯ãæè¡
ãã©ãŠã¶ã¯ããªãœãŒã¹ãç©æ¥µçã«èªã¿èŸŒãã ãæºåãããããããšã§ãããã©ãŒãã³ã¹ãåäžãããå¯èœæ§ã®ããããã€ãã®æè¡ãæäŸããŠããŸãã
1. ããªããŒãïŒPreloadïŒ
<link rel="preload">ã¿ã°ã䜿çšãããšããã©ãŠã¶ã«ãªãœãŒã¹ïŒJavaScriptã¢ãžã¥ãŒã«ãªã©ïŒãå¿
èŠã«ãªã*å*ã«ããŠã³ããŒãããŠãã£ãã·ã¥ããããã«æç€ºã§ããŸããããã¯ãããŒãžèªã¿èŸŒã¿ããã»ã¹ã®æ©ã段éã§å¿
èŠãšãããéèŠãªã¢ãžã¥ãŒã«ã«ç¹ã«åœ¹ç«ã¡ãŸãããã©ãŠã¶ã¯ãããªããŒããããã¹ã¯ãªãããããã¥ã¡ã³ãã§åç
§ããããŸã§å®è¡ããªããããä»ã®ã¢ã»ãããšäžŠè¡ããŠèªã¿èŸŒãããšãã§ãããªãœãŒã¹ã«æé©ã§ãã
äŸïŒ
<link rel="preload" href="/js/critical.js" as="script">
2. ããªãã§ããïŒPrefetchïŒ
<link rel="prefetch">ã¿ã°ã¯ãå°æ¥å¿
èŠã«ãªãå¯èœæ§ã®ãããªãœãŒã¹ïŒãŠãŒã¶ãŒã次ã«ããã²ãŒãããå¯èœæ§ã®ããå¥ã®ããŒãžã®ã¢ãžã¥ãŒã«ãªã©ïŒãååŸããããã«äœ¿çšãããŸãããã©ãŠã¶ã¯ãããã®ãªãœãŒã¹ãäœãåªå
床ã§ããŠã³ããŒããããããçŸåšã®ããŒãžã®éèŠãªã¢ã»ããã®èªã¿èŸŒã¿ãšç«¶åããŸããã
äŸïŒ
<link rel="prefetch" href="/js/next-page.js" as="script">
3. ããªã³ãã¯ãïŒPreconnectïŒ
<link rel="preconnect">ã¿ã°ã¯ããã©ãŠã¶ããµãŒããŒãããªãœãŒã¹ããªã¯ãšã¹ããã*å*ã«ããµãŒããŒïŒã¢ãžã¥ãŒã«ããã¹ããããŠããå ŽæïŒãžã®æ¥ç¶ãéå§ããŸããããã«ãããæ¥ç¶èšå®æéããªããããšã§ããªãœãŒã¹ã®èªã¿èŸŒã¿ããã»ã¹ãé«éåã§ããŸãããµãŒãããŒãã£ã®ãµãŒããŒã«æ¥ç¶ããå Žåã«ç¹ã«æçã§ãã
äŸïŒ
<link rel="preconnect" href="https://cdn.example.com" crossorigin>
ã¢ãžã¥ãŒã«èªã¿èŸŒã¿ã®ç£èŠãšãããã¡ã€ãªã³ã°
宿çãªç£èŠãšãããã¡ã€ãªã³ã°ã¯ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åãçµã¿ã®å¹æã远跡ããããã«äžå¯æ¬ ã§ããããã€ãã®ããŒã«ã圹ç«ã¡ãŸãã
1. ãã©ãŠã¶éçºè ããŒã«
ã»ãšãã©ã®çŸä»£ã®ãŠã§ããã©ãŠã¶ïŒChromeãFirefoxãSafariãEdgeïŒã¯ããããã¯ãŒã¯ãªã¯ãšã¹ãã®æ€æ»ãèªã¿èŸŒã¿æéã®åæãããã©ãŒãã³ã¹åé¡ã®ç¹å®ãå¯èœã«ãã匷åãªéçºè ããŒã«ãæäŸããŠããŸããããããã¯ãŒã¯ãã¿ãã§ã¯ããµã€ãºãèªã¿èŸŒã¿æéãããããã³ã°åäœãªã©ãèªã¿èŸŒãŸããåãªãœãŒã¹ã«é¢ãã詳现æ å ±ãæäŸãããŸãããŸããããŸããŸãªãããã¯ãŒã¯ç¶æ³ïŒäŸïŒäœé3GïŒãã·ãã¥ã¬ãŒãããŠãããŸããŸãªã·ããªãªäžã§ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«åäœããããçè§£ããããšãã§ããŸãã
2. ãŠã§ãããã©ãŒãã³ã¹ç£èŠããŒã«
å°éã®ãŠã§ãããã©ãŒãã³ã¹ç£èŠããŒã«ïŒäŸïŒGoogle PageSpeed InsightsãWebPageTestãGTmetrixïŒã¯ã詳现ãªããã©ãŒãã³ã¹ã¬ããŒããšæ¹åã®ããã®å®è¡å¯èœãªæšå¥šäºé ãæäŸããŸãããããã®ããŒã«ã¯ãç»åã®æé©åããã©ãŠã¶ãã£ãã·ã¥ã®æŽ»çšãã¬ã³ããªã³ã°ããããã¯ãããªãœãŒã¹ã®åæžãªã©ãã¢ããªã±ãŒã·ã§ã³ãæé©åã§ããé åãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããããã®ããŒã«ã¯ããã°ãã°ç°ãªãå°ççãªå Žæããã®ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã«é¢ããã°ããŒãã«ãªèŠç¹ãæäŸããŸãã
3. ãã³ãã©ã§ã®ããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°
å€ãã®ãã³ãã©ïŒWebpackãRollupïŒã¯ããã«ãããã»ã¹ãåæããæœåšçãªããã©ãŒãã³ã¹åé¡ãç¹å®ã§ãããããã¡ã€ãªã³ã°æ©èœãæäŸããŠããŸããããã«ãããç°ãªããã©ã°ã€ã³ãããŒããŒãæé©åæŠç¥ããã«ãæéã«äžãã圱é¿ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
ãã¹ããã©ã¯ãã£ã¹ãšå®è·µçãªæŽå¯
- ãã¡ãŒã¹ããã¥ãŒã®éèŠãªã³ã³ãã³ããåªå ããïŒãŠãŒã¶ãŒãããã«ç®ã«ããã³ã³ãã³ãïŒãã¡ãŒã¹ããã¥ãŒïŒãè¿ éã«èªã¿èŸŒãŸããããã«ããŸããããšãããã®äŸåé¢ä¿ãä»ã®éèŠã§ãªãã¢ãžã¥ãŒã«ãããåªå ããããšãæå³ãããšããŠãã§ãã
- åæãã³ãã«ãµã€ãºãæå°éã«æããïŒåæãã³ãã«ãµã€ãºãå°ããã»ã©ãããŒãžã®èªã¿èŸŒã¿ã¯éããªããŸããã³ãŒãåå²ãšããªãŒã·ã§ã€ãã³ã°ã¯ãããã§ã®æè¯ã®åã§ãã
- ç»åããã®ä»ã®ã¢ã»ãããæé©åããïŒç»åããã®ä»ã®éJavaScriptã¢ã»ããã¯ããã°ãã°èªã¿èŸŒã¿æéã®å€§ããªèŠå ãšãªããŸãããµã€ãºããã©ãŒããããèªã¿èŸŒã¿æŠç¥ãæé©åããŠãã ãããç»åã®é å»¶èªã¿èŸŒã¿ã¯ç¹ã«å¹æçã§ãã
- CDNã䜿çšããïŒã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã¯ãã³ã³ãã³ããå°ççã«è€æ°ã®ãµãŒããŒã«åæ£ãããŸããããã«ããããªãªãžã³ãµãŒããŒããé ãé¢ãããŠãŒã¶ãŒã®èªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ã§ããŸããããã¯åœéçãªãªãŒãã£ãšã³ã¹ã«ãšã£ãŠç¹ã«éèŠã§ãã
- ãã©ãŠã¶ãã£ãã·ã¥ã掻çšããïŒãµãŒããŒãé©åãªãã£ãã·ã¥ããããŒãèšå®ããããã«æ§æãããã©ãŠã¶ãéçã¢ã»ããããã£ãã·ã¥ã§ããããã«ããŠãå蚪åæã®ãªã¯ãšã¹ãæ°ãæžãããŸãã
- ææ°ã®ç¶æ ãä¿ã€ïŒãã³ãã©ããã©ã³ã¹ãã€ã©ãã©ã€ãã©ãªãææ°ã®ç¶æ ã«ä¿ã¡ãŸããæ°ããããŒãžã§ã³ã«ã¯ããã°ãã°ããã©ãŒãã³ã¹ã®æ¹åããã°ä¿®æ£ãå«ãŸããŠããŸãã
- ããŸããŸãªããã€ã¹ãšãããã¯ãŒã¯æ¡ä»¶ã§ãã¹ãããïŒã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªããã€ã¹ïŒã¢ãã€ã«ããã¹ã¯ãããïŒããã³ããŸããŸãªãããã¯ãŒã¯æ¡ä»¶ïŒé«éãäœéããªãã©ã€ã³ïŒã§ãã¹ãããŸããããã«ãããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããããã©ãŒãã³ã¹åé¡ãç¹å®ãã察åŠããã®ã«åœ¹ç«ã¡ãŸãã
- ãµãŒãã¹ã¯ãŒã«ãŒãæ€èšããïŒãµãŒãã¹ã¯ãŒã«ãŒã¯ã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹ããã£ãã·ã¥ã§ãããªãã©ã€ã³æ©èœãæå¹ã«ããç¹ã«å蚪åè ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ãã«ãããã»ã¹ãæé©åããïŒè€éãªãã«ãããã»ã¹ãããå Žåã¯ããããé床ã®ããã«æé©åãããŠããããšã確èªããŸããããã«ã¯ããã«ãããŒã«å ã®ãã£ãã·ã¥ã¡ã«ããºã ã䜿çšããŠã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ããé«éåãããã䞊ååãé©çšãããããããšãå«ãŸããŸãã
ã±ãŒã¹ã¹ã¿ãã£ãšã°ããŒãã«ãªäŸ
ãããã®æé©åæè¡ã®åœ±é¿ã説æããããã«ãããã€ãã®ã°ããŒãã«ãªäŸãèããŠã¿ãŸãããã
- ãšãŒããããšåç±³ã«ãµãŒãã¹ãæäŸããeã³ããŒã¹ãŠã§ããµã€ãïŒãšãŒããããšåç±³ã®äž¡æ¹ã®é¡§å®¢ã«ãµãŒãã¹ãæäŸããeã³ããŒã¹äŒæ¥ã¯ãã³ãŒãåå²ãå®è£ ããŠããŠãŒã¶ãŒãæäœãããšãã«ã®ã¿ååã«ã¿ãã°ãšã·ã§ããã³ã°ã«ãŒãæ©èœãèªã¿èŸŒãããã«ããŸããããŸããCDNã䜿çšããŠããŠãŒã¶ãŒã«è¿ããµãŒããŒããJavaScriptãã¡ã€ã«ãæäŸããŸããããã®çµæãããŒãžèªã¿èŸŒã¿æéã30%åæžããã売äžãå¢å ããŸããã
- ã¢ãžã¢ãã¿ãŒã²ãããšãããã¥ãŒã¹ãŠã§ããµã€ãïŒã€ã³ã¿ãŒãããé床ã倧ããç°ãªãã¢ãžã¢ã®å¹ åºããªãŒãã£ãšã³ã¹ãã¿ãŒã²ãããšãããã¥ãŒã¹ãŠã§ããµã€ãã¯ãç»åãã€ã³ã¿ã©ã¯ãã£ãèŠçŽ ã«é å»¶èªã¿èŸŒã¿ãæ¡çšããŸããããŸããããªã³ãã¯ãã䜿çšããŠãJavaScriptããã®ä»ã®ã¢ã»ããããã¹ãããã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ãžã®ããé«éãªæ¥ç¶ã確ç«ããŸããããããã®å€æŽã«ãããç¹ã«ã€ã³ã¿ãŒãããæ¥ç¶ãé ãå°åã§ã®äœæããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸããã
- ã°ããŒãã«ãªSaaSã¢ããªã±ãŒã·ã§ã³ïŒã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ãæã€Software as a ServiceïŒSaaSïŒã¢ããªã±ãŒã·ã§ã³ã¯ãWebpackã®ã³ãŒãåå²ãå©çšããŠåæãã³ãã«ãå°ããããåæèªã¿èŸŒã¿æéãæ¹åããŸããããŸããpreloadããã³prefetch屿§ã䜿çšããŠãéèŠãªJavaScriptã€ã³ããŒããåŸã§å¿ èŠã«ãªãå¯èœæ§ã®ããã¢ã»ãããæå®ããŸãããããã«ãããäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠãããã¹ã ãŒãºãªããã²ãŒã·ã§ã³ãšæ¹åããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå®çŸããŸããã
ãããã®ã±ãŒã¹ã¹ã¿ãã£ã¯ãäŸåé¢ä¿ã®æé©åã®æœåšçãªå©ç¹ãšãã¿ãŒã²ãããªãŒãã£ãšã³ã¹ã®å°ççãªå Žæããããã¯ãŒã¯æ¡ä»¶ãèæ ®ããããšã®éèŠæ§ãæµ®ã圫ãã«ããŠããŸãã
çµè«
JavaScriptã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿ãæé©åããããšã¯ãææ ®æ·±ãã¢ãããŒããšç¶ç¶çãªç£èŠãå¿ èŠãšããç¶ç¶çãªããã»ã¹ã§ããæšæºçãªã¢ãžã¥ãŒã«èªã¿èŸŒã¿ããã»ã¹ãçè§£ããããŸããŸãªæé©åæè¡ãæ¡çšããé©åãªããŒã«ã掻çšããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããã³ãŒãåå²ãé å»¶èªã¿èŸŒã¿ãããªãŒã·ã§ã€ãã³ã°ãªã©ã®æŠç¥ãåãå ¥ããŠããŠã§ãã¢ããªã±ãŒã·ã§ã³ãããéããããå¿çæ§ãé«ããäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠããæ¥œãããã®ã«ããŸããããããã©ãŒãã³ã¹ã®æé©åã¯äžåºŠããã®ä¿®æ£ã§ã¯ãªãããšãå¿ããªãã§ãã ãããã¢ããªã±ãŒã·ã§ã³ãå¯èœãªéãæé«ã®äœéšãæäŸãç¶ããããã«ã¯ãç¶ç¶çãªç£èŠããã¹ããé©å¿ãå¿ èŠã§ãã
ãããã®ãã¹ããã©ã¯ãã£ã¹ãå®è£ ãããŠã§ãããã©ãŒãã³ã¹ã®ææ°ã®é²æ©ã«ã€ããŠåžžã«æ å ±ãåŸãããšã§ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®ããã«ãããéããããé åçã§ãããæåãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãã§ããŸãã