Baseline Widely available *
<script>
㯠HTML ã®è¦ç´ ã§ãå®è¡ã§ããã³ã¼ãããã¼ã¿ãåãè¾¼ãããã«ä½¿ç¨ãã¾ãããµã¤ã㯠JavaScript ã®ã³ã¼ãã®åãè¾¼ã¿ãåç
§ã«ä½¿ç¨ããã¾ãã <script>
è¦ç´ 㯠WebGL ã® GLSL shader ããã°ã©ãã³ã°è¨èªã JSON çã®ä»ã®è¨èªã«ã使ç¨ãããã¨ãã§ãã¾ãã
ãã®è¦ç´ ã«ã¯ã°ãã¼ãã«å±æ§ãããã¾ãã
async
ã¯ã©ã·ãã¯ã¹ã¯ãªããã§ã¯ã async
屿§ããã£ãå ´åãã¯ã©ã·ãã¯ã¹ã¯ãªãããå©ç¨å¯è½ã«ãªãã¨ããã«ä¸¦è¡ãã¦èªã¿è¾¼ã¿ãè§£æã¨è©ä¾¡ãè¡ãã¾ãã
ã¢ã¸ã¥ã¼ã«ã¹ã¯ãªããã§ã¯ã async
屿§ããã£ãå ´åããã®ã¹ã¯ãªããã¨ãã®ä¾åé¢ä¿ã¯ãæ§æè§£æã¨ä¸¦è¡ãã¦èªã¿è¾¼ã¾ããå©ç¨å¯è½ã«ãªãã¨ããã«è©ä¾¡ããã¾ãã
è¦å: ãã®å±æ§ã¯ã src
屿§ãåå¨ããªãå ´åï¼ã¤ã³ã©ã¤ã³ã¹ã¯ãªãããªã©ï¼ã«ã¯ä½¿ç¨ããªãã§ãã ãããã¯ã©ã·ãã¯ã¹ã¯ãªããã®å ´åããã®å±æ§ã¯å¹æãããã¾ããã
ãã®å±æ§ã«ããããã©ã¦ã¶ã¼ãè§£æã䏿忢ãã¦ã¹ã¯ãªãããèªã¿è¾¼ãã§è©ä¾¡ããªããã°ãªããªããããªãã¼ãµã¼ããã㯠JavaScript ãæé¤ãããã¨ãã§ãã¾ã defer
ã¯ãã®å ´åã«åæ§ã®å¹æãããã¾ãã
ãã®å±æ§ã defer
屿§ã¨ã¨ãã«æå®ããã¨ããã®è¦ç´ 㯠async
屿§ã®ã¿ãæå®ããã¦ããå ´åã¨åãåä½ããã¾ãã
ããã¯è«ç屿§ã§ããè«ç屿§ãè¦ç´ ã«ããã°çã®å¤ã表ãã屿§ããªããã°å½ã®å¤ã表ãã¾ãã
ãã©ã¦ã¶ã¼ã®å¯¾å¿ç¶æ³ã«ã¤ãã¦ã¯ãã©ã¦ã¶ã¼ã®äºææ§ãã覧ãã ããã asm.js åãéåæã¹ã¯ãªãããã覧ãã ããã
attributionsrc
Experimental
ãã©ã¦ã¶ã¼ã«ãã¹ã¯ãªãããªã½ã¼ã¹ã®ãªã¯ã¨ã¹ãã¨ã¨ãã« Attribution-Reporting-Eligible
ãããã¼ãéä¿¡ããããã«æå®ãã¾ãããµã¼ãã¼å´ã§ã¯ããã®ãããã¼ã使ç¨ãã¦ãã¬ã¹ãã³ã¹ã§ Attribution-Reporting-Register-Source
ã¾ã㯠Attribution-Reporting-Register-Trigger
ãããã¼ãéä¿¡ãããããã JavaScript ãã¼ã¹ã®å¸°å±ã½ã¼ã¹ã¾ãã¯å¸°å±ããªã¬ã¼ãç»é²ãã¾ããã©ã®ã¬ã¹ãã³ã¹ãããã¼ãè¿ããã¯ãç»é²ãããªã¬ã¼ãã Attribution-Reporting-Eligible
ãããã¼ã®å¤ã«ãã£ã¦ç°ãªãã¾ãã
ã¡ã¢: ä»ã«ããJavaScript ãã¼ã¹ã®å¸°å±ã½ã¼ã¹ã¾ãã¯ããªã¬ã¼ã¯ã fetch()
ãªã¯ã¨ã¹ãã« attributionReporting
ãªãã·ã§ã³ãæå®ãããï¼fetch()
å¼ã³åºãã«ç´æ¥è¨å®ãããã Request
ãªãã¸ã§ã¯ãã«è¨å®ã㦠fetch()
å¼ã³åºãã«æ¸¡ãï¼ããªã¯ã¨ã¹ããªãã¸ã§ã¯ãã§ XMLHttpRequest
ã« setAttributionReporting()
ãå¼ã³åºãã¦éä¿¡ãããã¨ã§ç»é²ã§ãã¾ãã
ãã®å±æ§ã«ã¯ãè¨å®ã§ãããã¼ã¸ã§ã³ã 2 ã¤ããã¾ãã
è«ç屿§ãããªãã¡ attributionsrc
ã®ååã®ã¿ãããã¯ã Attribution-Reporting-Eligible
ãããã¼ã src
屿§ãæã示ãã®ã¨åããµã¼ãã¼ã«éä¿¡ãããã¨ãæå®ãã¾ããããã¯ã帰å±ã½ã¼ã¹ãããªã¬ã¼ã®ç»é²ãåããµã¼ãã¼ã§å¦çããå ´åã«é©ãã¦ãã¾ãã帰å±ããªã¬ã¼ãç»é²ããéããã®ããããã£ã¯ãªãã·ã§ã³ã§ãããçç¥ããå ´åã¯ç©ºæååå¤ã使ç¨ããã¾ãã
次ã®ããã« 1 ã¤ä»¥ä¸ã® URL ãæ ¼ç´ããå¤ã§ãã
<script
src="myscript.js"
attributionsrc="https://a.example/register-source https://b.example/register-source"></script>
ããã¯ããªã¯ã¨ã¹ãããããªã½ã¼ã¹ãèªåã§ç®¡çãããµã¼ãã¼ä¸ã«ãªãå ´åããå¥ã®ãµã¼ãã¼ä¸ã®å¸°å±ã½ã¼ã¹ã®ç»é²å¦çã ããè¡ãããå ´åã«ä¾¿å©ã§ãã ãã®å ´åãattributionSrc
ã®å¤ã¨ã㦠1 ã¤ä»¥ä¸ã® URL ãæå®ãããã¨ãã§ãã¾ãããªã½ã¼ã¹ã¸ã®ãªã¯ã¨ã¹ããçºçããã¨ã Attribution-Reporting-Eligible
ãããã¼ãããªã½ã¼ã¹ã®ãªãªã¸ã³ã«å ã㦠attributionSrc
ã§æå®ããã URL ã«éä¿¡ããã¾ãããããã® URL ã¯ãç»é²ãå®äºããããã«ã Attribution-Reporting-Register-Source
ã¾ã㯠Attribution-Reporting-Register-Trigger
ãããã¼ãé©åã«è¿ããã¨ãã§ãã¾ãã
ã¡ã¢: è¤æ°ã® URL ãæå®ããã¨ãããã¨ã¯ãåãæ©è½ã«è¤æ°ã®å¸°å±ã½ã¼ã¹ãç»é²ã§ããã¨ãããã¨ã«ãªãã¾ããä¾ãã°ãæåãæ¸¬å®ãããã¨ãã¦ãããã£ã³ãã¼ã³ãè¤æ°ããå ´åãç°ãªããã¼ã¿ã«å¯¾ãã¦ç°ãªãã¬ãã¼ããçæãããã¨ãã§ãã¾ãã
詳ããã¯å¸°å±ã¬ãã¼ã API ãåç §ãã¦ãã ããã
blocking
ãã®å±æ§ã¯ãã¹ã¯ãªãããåå¾ããéã«ç¹å®ã®æä½ããããã¯ãã¹ãã§ãããã¨ãæç¤ºçã«ç¤ºãã¾ãããããã¯ãããæä½ã¯ãä¸è¨ã«æ²è¼ããã¦ãããããã¯ãã¼ã¯ã³ã®ç©ºç½åºåããªã¹ãã§ãªããã°ãªãã¾ããã
render
: ç»é¢ã¸ã®ã³ã³ãã³ãã®ã¬ã³ããªã³ã°ã®ãããã¯ãã¾ããcrossorigin
é常㮠script
è¦ç´ ã¯æ¨æºã® CORS ãã§ãã¯ã«éããªãã¹ã¯ãªããã«å¯¾ãã¦ã window.onerror
ã«æå°éã®æ
å ±ããæ¸¡ãã¾ãããå¥ã®ãã¡ã¤ã³ã使ç¨ãããµã¤ãã«éçã¡ãã£ã¢ã¸ã®ã¨ã©ã¼ãã°åºåãã§ããããã«ããããã«ã¯ããã®å±æ§ã使ç¨ãã¦ãã ãããæå¹ãªå¤ã«ã¤ãã¦ã詳ãã㯠CORS è¨å®å±æ§ãã覧ãã ããã
defer
ãã®è«ç屿§ã¯ãã¹ã¯ãªãããææ¸ã®è§£æå®äºå¾ã㤠DOMContentLoaded
ã¤ãã³ããçºçããåã«å®è¡ãããã¨ããã©ã¦ã¶ã¼ã«ç¤ºãã¾ãã
defer
屿§ã®ä»ããã¹ã¯ãªããã¯ãã¹ã¯ãªãããèªã¿è¾¼ã¾ãã¦è©ä¾¡ãå®äºããã¾ã§ã DOMContentLoaded
ã¤ãã³ãã®çºçãæå¶ããã¾ãã
è¦å: ãã®å±æ§ã¯ã src
屿§ããªãå ´å (ããªãã¡ã¤ã³ã©ã¤ã³ã¹ã¯ãªãã) ã«ä½¿ç¨ãã¦ã¯ããã¾ããããã®ãããªå ´åã¯å¹æãããã¾ããã
defer
屿§ã¯ã¢ã¸ã¥ã¼ã«ã¹ã¯ãªããã«ã¯å¹æãããã¾ãããæ¢å®ã§å»¶æãè¡ããã¾ãã
defer
屿§ã®ããã¹ã¯ãªããã¯ãææ¸ã«ç¾ããé ã«å®è¡ããã¾ãã
ãã®å±æ§ã«ããããã©ã¦ã¶ã¼ãè§£æã䏿忢ãã¦ã¹ã¯ãªãããèªã¿è¾¼ãã§è©ä¾¡ããªããã°ãªããªããããªããã¼ãµã¼ããããã³ã° JavaScript ãæé¤ãããã¨ãã§ããããã«ãªãã¾ãã async
ã¯ãã®å ´åã¨ä¼¼ã广ãããã¾ãã
ãã®å±æ§ã async
屿§ã¨ã¨ãã«æå®ããå ´åããã®è¦ç´ 㯠async
屿§ã®ã¿ãæå®ããã¦ããå ´åã¨åçã«åä½ãã¾ãã
fetchpriority
å¤é¨ã¹ã¯ãªããããã§ããããã¨ãã«ä½¿ç¨ããç¸å¯¾çãªåªå 度ã®ãã³ããæä¾ããã¾ãã åãããå¤ã¯æ¬¡ã®éãã§ãã
high
å¤é¨ã¹ã¯ãªããããä»ã®å¤é¨ã¹ã¯ãªããã¨æ¯è¼ãã¦é«ãåªå 度ã§åå¾ãã¾ãã
low
å¤é¨ã¹ã¯ãªããããä»ã®å¤é¨ã¹ã¯ãªããã¨æ¯è¼ãã¦ä½ãåªå 度ã§åå¾ãã¾ãã
auto
åå¾ã®åªå 度ã®ç°å¢è¨å®ãæå®ãã¾ããã ãããæ¢å®å¤ã§ãã å¤ããªãå ´åããç¡å¹ãªå¤ãè¨å®ããã¦ããå ´åã«ä½¿ç¨ããã¾ãã
詳ãã㯠HTMLScriptElement.fetchPriority
ãåç
§ãã¦ãã ããã
integrity
ãã®å±æ§ã«ã¯ãåå¾ãããªã½ã¼ã¹ãäºæãã¬æä½ãªãã«é
ä¿¡ããããã¨ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã確èªããããã«ä½¿ç¨ã§ããã¤ã³ã©ã¤ã³ã¡ã¿ãã¼ã¿ãå«ã¾ãã¦ãã¾ãã src
屿§ãæå®ããã¦ããªãå ´åã¯ããã®å±æ§ãæå®ãã¦ã¯ãªãã¾ããããµããªã½ã¼ã¹å®å
¨æ§ãåç
§ãã¦ãã ããã
nomodule
ãã®è«ç屿§ã¯ã ES ã¢ã¸ã¥ã¼ã«ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã§ã¯ãã¹ã¯ãªãããå®è¡ããã¹ãã§ã¯ãªããã¨ã示ãã¾ããè¦ããã«ãã¢ã¸ã¥ã¼ã«å¼ã® JavaScript ã³ã¼ãã«å¯¾å¿ãã¦ããªãå¤ããã©ã¦ã¶ã¼åãã®ä»£æ¿ã¹ã¯ãªãããæä¾ããããã«ä½¿ç¨ã§ãã¾ãã
nonce
script-src ã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ã¼å ã®ã¹ã¯ãªããããã¯ã¤ããªã¹ãã«å ¥ããããã®æå·ãã³ã¹ (ã¯ã³ã¿ã¤ã çªå·) ã§ãããµã¼ãã¼ã¯ããªã·ã¼ãéä¿¡ãããã³ã«ä¸æã®ãã³ã¹å¤ãçæããå¿ è¦ãããã¾ãããã以å¤ã®æ¹æ³ã§ãªã½ã¼ã¹ã®ããªã·ã¼ã®ãã¤ãã¹ãæ¨æ¸¬ã§ããªããã³ã¹ãæä¾ãããã¨ãéè¦ã§ãã
referrerpolicy
ã¹ã¯ãªãããèªã¿è¾¼ãã ããã¹ã¯ãªããããªã½ã¼ã¹ãèªã¿è¾¼ãã ãããéã«ãã©ã®ãªãã¡ã©ã¼ãéä¿¡ãããã示ãã¾ãã
no-referrer
: Referer
ãããã¼ã¯éä¿¡ãã¾ãããno-referrer-when-downgrade
(æ¢å®å¤): Referer
ãããã¼ã¯ããªãªã¸ã³ã« TLS (HTTPS) ããªãå ´åã«ã¯éä¿¡ãã¾ãããorigin
: éä¿¡ãããªãã¡ã©ã¼ããåç
§ãã¦ãããã¼ã¸ã®ãªãªã¸ã³ï¼ã¹ãã¼ã ããã¹ãããã¼ãçªå·ï¼ã®ã¿ã«å¶éãã¾ããorigin-when-cross-origin
: ç°ãªããªãªã¸ã³ã¸ã®ç§»åã§ã¯ãªãã¡ã©ã¼ãã¹ãã¼ã ããã¹ãããã¼ãçªå·ã«å¶éãã¾ããåä¸ãªãªã¸ã³ã¸ã®ç§»åã§ã¯ããªãã¡ã©ã¼ã®ãã¹ãå«ãã¾ããsame-origin
: ãªãã¡ã©ã¼ã¯åä¸ãªãªã¸ã³ã«ã¯éä¿¡ãã¾ããããªãªã¸ã³éãªã¯ã¨ã¹ãã«ã¯ãªãã¡ã©ã¼æ
å ±ãå«ãã¾ãããstrict-origin
: ãããã³ã«ã®ã»ãã¥ãªãã£æ°´æºãåç (ä¾ãã° HTTPSâHTTPS) ã§ããå ´åã¯ææ¸ã®ãªãªã¸ã³ã®ã¿ããªãã¡ã©ã¼ã¨ãã¦éä¿¡ãã¾ãããå®å
ã®å®å
¨æ§ãããä½ãå ´å (ä¾ãã° HTTPSâHTTP) ã«ã¯éä¿¡ãã¾ãããstrict-origin-when-cross-origin
: åä¸ãªãªã¸ã³ã®ãªã¯ã¨ã¹ããè¡ãé㯠URL å
¨ä½ãéä¿¡ãã¾ããããããã³ã«ã®ã»ãã¥ãªãã£æ°´æºãåç (ä¾ãã° HTTPSâHTTPS) ã§ããå ´åã¯ææ¸ã®ãªãªã¸ã³ã®ã¿ããªãã¡ã©ã¼ã¨ãã¦éä¿¡ããå®å
ã®å®å
¨æ§ãããä½ãå ´å (ä¾ãã° HTTPSâHTTP) ã«ã¯ãããã¼ãéä¿¡ãã¾ãããunsafe-url
: ãªãã¡ã©ã¼ã¯ãªãªã¸ã³ã¨ãã¹ãå«ã¿ã¾ã (ãã ãããã©ã°ã¡ã³ãããã¹ã¯ã¼ããã¦ã¼ã¶ã¼åã¯å«ã¿ã¾ãã)ãããã¯ãªãªã¸ã³ããã¹ã®æ
å ±ã TLS ã§ä¿è·ããããªã½ã¼ã¹ããã»ãã¥ã¢ã§ãªãçæå
ã¸æ¼ãããã¾ãã®ã§ãå®å
¨ã§ã¯ããã¾ãããã¡ã¢: æ¢å®å¤ããã³ referrerpolicy
ã«å¯¾å¿ãã¦ããªãå ´åã®ä»£æ¿å¤ã¯ç©ºæåå (""
) ã§ãã referrerpolicy
ã <script>
è¦ç´ ã§æç¤ºçã«æå®ããã¦ããªãå ´åã¯ãã髿¬¡å
ãã¤ã¾ãææ¸å
¨ä½ããã¡ã¤ã³å
¨ä½ã®ãªãã¡ã©ã¼ããªã·ã¼ã«åããããã¾ãããã髿¬¡å
ã®ããªã·ã¼ãå©ç¨ã§ããªãå ´åã¯ã空æåå㯠strict-origin-when-cross-origin
ã¨åçã®ãã®ã¨ãã¦æ±ããã¾ãã
src
ãã®å±æ§ã¯å¤é¨ã¹ã¯ãªããã® URI ãæå®ãã¾ããææ¸ã«ç´æ¥ã¹ã¯ãªãããåãè¾¼ã代ããã«ä½¿ç¨ãããã¨ãã§ãã¾ãã
type
ãã®å±æ§ã¯ã表ç¾ãããã¹ã¯ãªããã®ç¨®é¡ã示ãã¾ãã ãã®å±æ§ã®å¤ã¯ã以ä¸ã®ããããã«ãªãã¾ãã
ã¹ã¯ãªããããã¯ã©ã·ãã¯ã¹ã¯ãªãããã§ãããã¨ãJavaScript ã³ã¼ããä¿æãã¦ãããã¨ã示ãã¾ãã ãã®ã¹ã¯ãªããã JavaScript ã³ã¼ããåç §ãã¦ããå ´åãMIME ã¿ã¤ããæå®ããã®ã§ã¯ãªãããã®å±æ§ãçç¥ãããã¨ãæ¨å¥¨ãã¾ãã JavaScript ã® MIME ã¿ã¤ã㯠IANA media types specification ã«æ²è¼ããã¦ãã¾ãã
importmap
ãã®å¤ã¯ãè¦ç´ ã®æ¬ä½ã«ã¤ã³ãã¼ãããããæ ¼ç´ããã¦ãããã¨ã示ãã¾ãã ã¤ã³ãã¼ãããã JSON ãªãã¸ã§ã¯ãã§ãéçºè ã JavaScript ã¢ã¸ã¥ã¼ã«ãã¤ã³ãã¼ãããéã«ããã©ã¦ã¶ã¼ãã¢ã¸ã¥ã¼ã«æå®åã解決ããæ¹æ³ãå¶å¾¡ããããã«ä½¿ç¨ã§ãã¾ãã
module
ã³ã¼ãã JavaScript ã¢ã¸ã¥ã¼ã«ã¨ãã¦æ±ãã¾ãã ã¹ã¯ãªããã³ã³ãã³ãã®å¦çã¯å»¶æããã¾ãã charset
ããã³ defer
屿§ã®å½±é¿ãåãã¾ããã module
ã®å©ç¨ã«ã¤ãã¦ã®æ
å ±ã¯ã JavaScript ã¢ã¸ã¥ã¼ã«ãã覧ãã ããã ã¯ã©ã·ãã¯ã¹ã¯ãªããã¨ã¯ç°ãªããã¢ã¸ã¥ã¼ã«ã¹ã¯ãªããã¯ãªãªã¸ã³ãã¾ããã§èªã¿åãå ´åãCORS ãããã³ã«ã使ç¨ããå¿
è¦ãããã¾ãã
speculationrules
Experimental
ãã®å¤ã¯ããã®è¦ç´ ã®æ¬ä½ãææ©ã«ã¼ã«ã§ãããã¨ã示ãã¾ããææ©ã«ã¼ã«ã¯ JSON ãªãã¸ã§ã¯ãã®å½¢ã§æä¾ããããã©ã¦ã¶ã¼ãã©ã®ãªã½ã¼ã¹ãäºååå¾ã¾ãã¯äºåã¬ã³ããªã³ã°ãã¹ãããæ±ºå®ãã¾ããããã¯ãææ©ã«ã¼ã« API ã®ä¸é¨ã§ãã
ãã®ã¿ã°ã§åãè¾¼ãã ã³ã³ãã³ããããã©ã¦ã¶ã¼ã«ãã£ã¦å¦çãããªããã¼ã¿ãããã¯ã¨ãã¦æ±ãã¾ãã éçºè
ã¯ãã¼ã¿ãããã¯ãè¨è¿°ããããã«ã JavaScript ã® MIME ã¿ã¤ãã§ã¯ãªãæå¹ãª MIME ã¿ã¤ãã使ç¨ããªããã°ãªãã¾ããã ä»ã®å±æ§ã¯ãsrc
屿§ãå«ãã¦ãã¹ã¦ç¡è¦ããã¾ãã
charset
鿍奍;
åå¨ããå ´åãå¤ã¯ ASCII ã§ã utf-8
ã¨å¤§æåå°æåãåºå¥ããã«ä¸è´ããæååã§ãªããã°ãªãã¾ããã charset
屿§ã¯ãææ¸ã UTF-8 ã§ãªããã°ãªããªããã¨ãããã³ script
è¦ç´ ãææ¸ããæåã¨ã³ã³ã¼ãã£ã³ã°ãç¶æ¿ãããã¨ãããæå®ããå¿
è¦ã¯ããã¾ããã
language
鿍奍; 鿍æº
type
屿§ã¨åãããã«ããã®å±æ§ã¯ä½¿ããã¦ããã¹ã¯ãªããè¨èªãæå®ããéã«ç¨ãããã¾ãããããã type
屿§ã¨ã¯ç°ãªãããã®å±æ§ã«æå®å¯è½ãªå¤ãæ¨æºåããã¾ããã§ããã代ããã« type
屿§ã使ç¨ãã¦ãã ããã
async
, defer
, type="module"
ã®ãããã®å±æ§ããªãã¹ã¯ãªããã¯ã type="module"
ã®ãªãã¤ã³ã©ã¤ã³ã¹ã¯ãªããåæ§ã«ããã©ã¦ã¶ã¼ããã¼ã¸ã®è§£æãç¶ããããå
ã«ããã ã¡ã«èªã¿è¾¼ã¿ããã³å®è¡ããã¾ãã
ã¹ã¯ãªãã㯠text/javascript
ã® MIME ã¿ã¤ãã§æä¾ããã¹ãã§ããããã©ã¦ã¶ã¼ã¯å¯å¤§ã§ãããç»åå (image/*
)ãåç»å (video/*
)ãé³å£°å (audio/*
)ãtext/csv
ã®ã¿ã¤ãã§æä¾ãããã¹ã¯ãªããã«éããããã¯ãã¾ããã¹ã¯ãªããããããã¯ãããã¨ã error
ã¤ãã³ãããã®è¦ç´ ã«éãããããã§ã¯ãªãå ´å㯠load
ã¤ãã³ããéããã¾ãã
ãããã®ä¾ã¯ <script>
è¦ç´ ã使ç¨ã㦠(å¤é¨ã®) ã¹ã¯ãªãããã¤ã³ãã¼ãããæ¹æ³ãç´¹ä»ãã¾ãã
<script src="javascript.js"></script>
ã¾ãã以ä¸ã®ä¾ã¯ <script>
è¦ç´ å
ã« (ã¤ã³ã©ã¤ã³) ã¹ã¯ãªãããç½®ãæ¹æ³ã示ãã¾ãã
<script>
alert("Hello World!");
</script>
async ã¾ã㯠defer
async
屿§ã使ç¨ãã¦èªã¿è¾¼ãã¹ã¯ãªããã¯ãã¹ã¯ãªãããåå¾ãã¦ããéããã¼ã¸ããããã¯ããã«ã¹ã¯ãªããããã¦ã³ãã¼ããã¾ãã ãããããã¦ã³ãã¼ããå®äºããã¨ã¹ã¯ãªãããå®è¡ããããã¼ã¸ã®ã¬ã³ããªã³ã°ããããã¯ããã¾ããã¤ã¾ããã¹ã¯ãªããã®å®è¡ãå®äºããã¾ã§ãã¦ã§ããã¼ã¸ä¸ã®ä»ã®ã³ã³ãã³ãã¯å¦çããããã¦ã¼ã¶ã¼ã«è¡¨ç¤ºãããªãã¨ãããã¨ã§ãã ã¹ã¯ãªãããç¹å®ã®é åºã§å®è¡ãããã¨ããä¿è¨¼ã¯ããã¾ããã async
屿§ã使ç¨ããæé©ãªå ´é¢ã¯ããã¼ã¸ä¸ã®ã¹ã¯ãªãããäºãã«ç¬ç«ãã¦åä½ãããã¼ã¸ä¸ã®ä»ã®ã¹ã¯ãªããã«ä¾åããªãå ´åã§ãã
defer
屿§ãè¨å®ãããã¹ã¯ãªããã¯ããã¼ã¸ã«ç¾ããé çªã«èªã¿è¾¼ã¾ãã¾ãã ãã¼ã¸ã®ã³ã³ãã³ãããã¹ã¦èªã¿è¾¼ã¾ããã¾ã§å®è¡ãããªããããã¹ã¯ãªããããã®å ´ã® DOM ã«ä¾åãã¦ããå ´åï¼ä¾ãã°ããã¼ã¸ä¸ã® 1 ã¤ä»¥ä¸ã®è¦ç´ ã夿´ããå ´åãªã©ï¼ã«ä¾¿å©ã§ãã
ããã¯ããã¾ãã¾ãªã¹ã¯ãªããèªã¿è¾¼ã¿æ¹æ³ã¨ãããããã¼ã¸ã«æå³ãã¦ãããã¨ãè¦è¦çã«è¡¨ç¾ãããã®ã§ãã
ãã®ç»å㯠HTML 仿§æ¸ ããåå¾ãããã®ã§ã CC BY 4.0 ã©ã¤ã»ã³ã¹è¦å®ã«åºã¥ãã¦ç¸®å°ã®ããã«ã³ãã¼ãåãæãããã®ã§ãã
ä¾ãã°ã次ã®ãã㪠script è¦ç´ ããã£ãã¨ãã¾ãã
<script async src="js/vendor/jquery.js"></script>
<script async src="js/script2.js"></script>
<script async src="js/script3.js"></script>
ã¹ã¯ãªãããèªã¿è¾¼ã¾ããéã®é åºã«ä¾åãããã¨ã¯ã§ãã¾ããã jquery.js
㯠script2.js
ã script3.js
ã®åã¾ãã¯å¾ã«èªã¿è¾¼ã¾ããå¯è½æ§ãããããããããªã£ãå ´åããããã®ã¹ã¯ãªããå
ã® jquery
ã«ä¾åãã颿°ã¯ã¨ã©ã¼ãçºçãã¾ãããªããªããã¹ã¯ãªãããå®è¡ããæç¹ã§ã¯ jquery
ãå®ç¾©ããã¦ããªãããã§ãã
async
ã¯ã夿°ã®ããã¯ã°ã©ã¦ã³ãã¹ã¯ãªãããèªã¿è¾¼ãå¿
è¦ããããããããã§ããã ãæ©ãåå¾ãããå ´åã«ã®ã¿ä½¿ç¨ãã¾ãããã ä¾ãã°ãã²ã¼ã ãå®éã«å§ããéã«å¿
è¦ã¨ãªãã²ã¼ã ãã¼ã¿ãã¡ã¤ã«ãèªã¿è¾¼ãå¿
è¦ããããã®ã®ãã¹ã¯ãªããã®èªã¿è¾¼ã¿ã«ãã£ã¦ãããã¯ããããã¨ãªããã²ã¼ã ã®ã¤ã³ãããã¿ã¤ãã«ãããã¼ã表示ãããã ãã§ããå ´åãªã©ãèãããã¾ãã
defer
屿§ï¼ä¸è¨åç
§ï¼ãç¨ãã¦èªã¿è¾¼ãã ã¹ã¯ãªããã¯ããã¼ã¸ã«ç¾ããé çªã«å®è¡ãããã¹ã¯ãªããã¨ã³ã³ãã³ãããã¦ã³ãã¼ããããã¨ããã«å®è¡ããã¾ãã
<script defer src="js/vendor/jquery.js"></script>
<script defer src="js/script2.js"></script>
<script defer src="js/script3.js"></script>
2 ã¤ç®ã®ä¾ã§ã¯ã jquery.js
ã script2.js
㨠script3.js
ãèªã¿è¾¼ã¾ããåã«èªã¿è¾¼ã¾ãã script3.js
㯠script2.js
ãèªã¿è¾¼ã¾ããåã«èªã¿è¾¼ã¾ãããã¨ã確å®ã§ãã ãã¼ã¸ã³ã³ãã³ãããã¹ã¦èªã¿è¾¼ã¾ããã¾ã§ããããã®ã¹ã¯ãªããã¯å®è¡ããã¾ãããããã¯ãã¹ã¯ãªããããã®å ´ã® DOM ã«ä¾åãã¦ããå ´åï¼ä¾ãã°ããã¼ã¸ä¸ã® 1 ã¤ä»¥ä¸ã®è¦ç´ ã夿´ãããªã©ï¼ã«ä¾¿å©ã§ãã
ã¾ã¨ããã¨ã次ã®ããã«ãªãã¾ãã
async
㨠defer
ã¯ã©ã¡ããããã¼ã¸ã®æ®ãã®é¨åï¼DOM ãªã©ï¼ããã¦ã³ãã¼ããã¦ããéã«ãã¹ã¯ãªããï¼è¤æ°å¯ï¼ãå¥åã®ã¹ã¬ããã§ãã¦ã³ãã¼ããããããã©ã¦ã¶ã¼ã«æç¤ºãã¾ãããã®ãããåå¾ããã»ã¹ä¸ã«ãã¼ã¸ã®èªã¿è¾¼ã¿ããããã¯ããããã¨ã¯ããã¾ãããasync
屿§ãæã¤ã¹ã¯ãªããã¯ããã¦ã³ãã¼ããå®äºããã¨ããã«å®è¡ããã¾ããããã«ãããã¼ã¸ããããã¯ãããç¹å®ã®å®è¡é åºã¯ä¿è¨¼ããã¾ãããdefer
屿§ãæã¤ã¹ã¯ãªããã¯ãæå®ãããé çªã§èªã¿è¾¼ã¾ãããã¹ã¦ã®èªã¿è¾¼ã¿ãå®äºããæç¹ã§åãã¦å®è¡ããã¾ããasync
ã使ç¨ãã¾ããããdefer
ã使ç¨ãã¦èªã¿è¾¼ã¿ã対å¿ãã <script>
è¦ç´ ããã©ã¦ã¶ã¼ã«å®è¡ããããé çªã«é
ç½®ãã¾ããããmodule
ã®å¤ãæã¤ type
屿§ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã¯ã nomodule
屿§ã®ä»ããã¹ã¯ãªãããç¡è¦ãã¾ããããã«ãã£ã¦ãã¢ã¸ã¥ã¼ã«ã¹ã¯ãªãããæä¾ãã¤ã¤ãé対å¿ã®ãã©ã¦ã¶ã¼ã®å ´å㯠nomodule
ã§ãã¼ã¯ããã代æ¿ã¹ã¯ãªãããæä¾ãããã¨ãã§ãã¾ãã
<script type="module" src="main.js"></script>
<script nomodule src="fallback.js"></script>
importmap ã«ããã¢ã¸ã¥ã¼ã«ã®ã¤ã³ãã¼ã
ã¹ã¯ãªããã§ã¢ã¸ã¥ã¼ã«ãã¤ã³ãã¼ãããã¨ããtype=importmap
æ©è½ã使ç¨ããªãå ´åãåã¢ã¸ã¥ã¼ã«ã¯çµ¶å¯¾ URL ã¾ãã¯ç¸å¯¾ URL ã®ã©ã¡ããã®ã¢ã¸ã¥ã¼ã«æå®åã使ç¨ãã¦ã¤ã³ãã¼ãããå¿
è¦ãããã¾ãã ä¸è¨ã®ä¾ã§ã¯ã1 ã¤ç®ã®ã¢ã¸ã¥ã¼ã«æå®å ("./shapes/square.js") ã¯ææ¸ã®ãã¼ã¹ URL ã«å¯¾ãã¦ç¸å¯¾çã«è§£æ±ºããã2 ã¤ç®ã¯çµ¶å¯¾ URL ã¨ãªãã¾ãã
import { name as squareName, draw } from "./shapes/square.js";
import { name as circleName } from "https://example.com/shapes/circle.js";
ã¤ã³ãã¼ããããã使ç¨ããã¨ãä¸è´ããå ´åã«ã¢ã¸ã¥ã¼ã«æå®åã®ããã¹ããç½®ãæãããã¨ãã§ãã対å¿è¡¨ãæä¾ãããã¨ãã§ãã¾ãã ä¸è¨ã®ã¤ã³ãã¼ããããã§ã¯ãä¸ã«ç¤ºããã¢ã¸ã¥ã¼ã«æå®åã®ã¨ã¤ãªã¢ã¹ã¨ãã¦ä½¿ç¨ã§ãããã¼ square
㨠circle
ãå®ç¾©ãã¦ãã¾ãã
<script type="importmap">
{
"imports": {
"square": "./shapes/square.js",
"circle": "https://example.com/shapes/circle.js"
}
}
</script>
ããã«ãããï¼çµ¶å¯¾ URL ãç¸å¯¾ URL ã§ã¯ãªãï¼ã¢ã¸ã¥ã¼ã«æå®åã®ååã使ç¨ãã¦ã¢ã¸ã¥ã¼ã«ãã¤ã³ãã¼ããããã¨ãã§ãã¾ãã
import { name as squareName, draw } from "square";
import { name as circleName } from "circle";
ã¤ã³ãã¼ããããã§ã§ãããã¨ã®ä¾ã«ã¤ãã¦ã¯ãJavaScript ã¢ã¸ã¥ã¼ã«ã¬ã¤ãã®ã¤ã³ãã¼ããããã使ç¨ããã¢ã¸ã¥ã¼ã«ã®ã¤ã³ãã¼ãã®é ãåç §ãã¦ãã ããã
HTML ã¸ã®ãã¼ã¿ã®åãè¾¼ã¿ã¾ãã <script>
è¦ç´ ã使ç¨ãã¦ã JavaScript 以å¤ã®æå¹ãª MIME ã¿ã¤ãã type
屿§ã«æå®ãããã¨ã§ããµã¼ãã¼å´ã§åºåãããã¼ã¿ã HTML ã«åãè¾¼ããã¨ãã§ãã¾ãã
<!-- ãµã¼ãã¼ã«ããçæ -->
<script id="data" type="application/json">
{
"userId": 1234,
"userName": "Maria Cruz",
"memberSince": "2000-01-01T00:00:00.000Z"
}
</script>
<!-- åºå® -->
<script>
const userInfo = JSON.parse(document.getElementById("data").text);
console.log("User information: %o", userInfo);
</script>
ã¹ã¯ãªããããã§ãããããå®è¡ãããã¾ã§ã¬ã³ããªã³ã°ããããã¯
blocking
屿§ã®ä¸ã« render
ãã¼ã¯ã³ãå«ãããã¨ãã§ãã¾ããã¹ã¯ãªããããã§ããããå®è¡ãããã¾ã§ããã¼ã¸ã®ã¬ã³ããªã³ã°ã¯ãããã¯ããã¾ããä¸è¨ã®ä¾ã§ã¯ãéåæã¹ã¯ãªããã§ã¬ã³ããªã³ã°ããããã¯ãã¦ãã¾ããã¹ã¯ãªãããè§£éããããã¯ãããã¨ãªããã¬ã³ããªã³ã°ãå§ã¾ãåã«è©ä¾¡ããããã¨ãä¿è¨¼ããã¾ãã
<script blocking="render" async src="async-script.js"></script>
æè¡çæ¦è¦ 仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4