Baseline Widely available *
preload
㯠<link>
è¦ç´ ã® rel
屿§ã®å¤ã§ããã® HTML ã® <head>
ã®ä¸ã§èªã¿åããªã¯ã¨ã¹ãã宣è¨ãããã¼ã¸ã®ã©ã¤ããµã¤ã¯ã«ã®æ©æã®ããã©ã¦ã¶ã¼ã®ä¸»ãªã¬ã³ããªã³ã°æ©æ§ãèµ·åããåã«èªã¿åããå§ããããããã«å¿
è¦ãªãªã½ã¼ã¹ãæå®ãããã¨ãã§ãã¾ããããã«ããããã®ãªã½ã¼ã¹ãããæ©ãå©ç¨ã§ãããã¼ã¸ã®ã¬ã³ããªã³ã°ããããã¯ããã«ãããªããæ§è½ãåä¸ãã¾ããååã«ã¯ load ã¨ããè¨èãå«ã¾ãã¦ãã¾ãããããã¯ã¹ã¯ãªãããèªã¿è¾¼ãã§å®è¡ããã®ã§ã¯ãªãããã¦ã³ãã¼ãã¨ãã£ãã·ã¥ãããé«ãåªå
度ã§è¡ãããã«ã¹ã±ã¸ã¥ã¼ã«ããã ãã§ãã
å¤ãã®å ´åã¯ä»¥ä¸ã®ããã«ã <link>
ã使ç¨ã㦠CSS ãã¡ã¤ã«ãèªã¿åãããã¼ã¸ã«ã¹ã¿ã¤ã«ãé©ç¨ãã¾ãã
<link rel="stylesheet" href="styles/main.css" />
ãããããã§ã rel
ã®å¤ã« preload
ã使ç¨ããã¨ã <link>
è¦ç´ ã¯å©ç¨ããããããããªã½ã¼ã¹ã®äºåèªã¿è¾¼ã¿æç¤ºã«ãªãã¾ãã以ä¸ã®ãã®ãæå®ããå¿
è¦ãããã¾ãã
ç°¡åãªä¾ã示ãã¨ã次ã®ããã«ãªãã¾ã (JS 㨠CSS ã®ä¾ã®ã½ã¼ã¹ããã³ã©ã¤ã)ã
<head>
<meta charset="utf-8" />
<title>JS and CSS preload example</title>
<link rel="preload" href="style.css" as="style" />
<link rel="preload" href="main.js" as="script" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h1>bouncing balls</h1>
<canvas></canvas>
<script src="main.js" defer></script>
</body>
ããã§ CSS ãã¡ã¤ã«ã¨ JavaScript ãã¡ã¤ã«ãäºåèªã¿è¾¼ã¿ããã®ã§ããã®å¾ã®ãã¼ã¸ã®ã¬ã³ããªã³ã°ã§å¿
è¦ãªæã«ã¯ãããã«å©ç¨ã§ããããã«ãªãã¾ãããã©ã¦ã¶ã¼ã¯ããããã <link rel="stylesheet">
㨠<script>
è¦ç´ ã HTML å
ã®åããã£ã³ã¯ã§è¦ã¤ããã®ã§ããã®ä¾ã¯æ¥µç«¯ã§ãããå¾ã«ç¾ãããªã½ã¼ã¹ã§ããã»ã©ãã¾ã大ãããªã½ã¼ã¹ã§ããã»ã©å¹æãè¦ãããå¯è½æ§ãããã¾ããä¾ãã°ä»¥ä¸ã®å ´åã§ãã
preload
ã«ã¯ä»ã®å©ç¹ãããã¾ãã as
ã«ãã£ã¦äºåèªã¿è¾¼ã¿ãããã³ã³ãã³ãã®ç¨®é¡ããã©ã¦ã¶ã¼ã«æç¤ºãããã¨ã§ã以ä¸ã®ãããªãã¨ãå®ç¾ã§ãã¾ãã
Accept
ãªã¯ã¨ã¹ããããã¼ãè¨å®ã§ããããã¾ãã¾ãªç¨®é¡ã®ã³ã³ãã³ããäºåèªã¿è¾¼ã¿ã§ãã¾ãã as
屿§ã§ä½¿ç¨ã§ããå¤ã¯ä»¥ä¸ã®éãã§ãã
fetch
: ArrayBuffer ã WebAssembly ãã¤ããªã¼ã JSON ãã¡ã¤ã«ã®ãããªããã§ããã¾ã㯠XHR è¦æ±ã§ã¢ã¯ã»ã¹ããããªã½ã¼ã¹ãfont
: ãã©ã³ããã¡ã¤ã«ãimage
: ç»åãã¡ã¤ã«ãscript
: JavaScript ãã¡ã¤ã«ãstyle
: CSS ã¹ã¿ã¤ã«ã·ã¼ããtrack
: WebVTT ãã¡ã¤ã«ãã¡ã¢: font
ããã³ fetch
ã®äºåèªã¿è¾¼ã¿ã«ã¯ã crossorigin
屿§ãè¨å®ããå¿
è¦ãããã¾ããä¸è¨ã® CORS ã使ç¨ãããã§ãããåç
§ãã¦ãã ããã
ã¡ã¢: 使ç¨ãããã¨äºæ³ããããããã®å¤ãã¦ã§ãæ©è½ã«ã¤ãã¦ããã£ã¨è©³ç´°ã®ãã¨ã¯ã HTML ã®ä»æ§æ¸ã Link type "preload" ãåç
§ãã¦ãã ãããã¾ãããã§ããã®ä»æ§æ¸ã§ç®¡çããã¦ãã as
屿§ã®å¤ã®å®å
¨ãªä¸è¦§ã¯ã request destinations ãåç
§ãã¦ãã ããã
<link>
è¦ç´ 㯠type
è¦ç´ ãåãä»ããè¦ç´ ãæãå
ã®ãªã½ã¼ã¹ã® MIME ã¿ã¤ããæå®ãããã¨ãã§ãã¾ããããã¯ç¹ã«ãªã½ã¼ã¹ã®äºåèªã¿è¾¼ã¿æã«ä¾¿å©ã§ãã â ãã©ã¦ã¶ã¼ã¯ type
屿§ã®å¤ã使ç¨ãã¦å¯¾å¿ãã¦ãããªã½ã¼ã¹ã§ãããã©ããã確èªãããã®å ´åã ããã¦ã³ãã¼ããéå§ããããã§ãªãå ´åã¯éå§ããªãããã«ãããã¨ãã§ãã¾ãã
<head>
<meta charset="utf-8" />
<title>Image preload example</title>
<link rel="preload" href="flower.avif" as="image" type="image/avif" />
</head>
<body>
<picture>
<source src="flower.avif" type="image/avif" />
<source src="flower.webp" type="image/webp" />
<img src="flower.jpg" />
</picture>
</body>
ä¸è¨ã®ä¾ã®ã³ã¼ãã§ã¯ãimage/avif
ã®ç»åã¯å¯¾å¿ãã©ã¦ã¶ã¼ã§ã®ã¿äºåèªã¿è¾¼ã¿ããã¾ããããã¦ãimage/avif
ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã§ã¯ã image/avif
ã®ç»åãå®éã«ä½¿ç¨ããã¾ãï¼ããã¯ãæåã® <source>
ãæå®ãããããï¼ãããã«ããããã©ã¦ã¶ã¼ã® image/avif
ã«å¯¾å¿ãã¦ããã¦ã¼ã¶ã¼ã«ã¨ã£ã¦ãç»åã®ãã¦ã³ãã¼ããããå°ãããªããã¨ãæå¾
ãã¦ãã¾ãã
ãªãããã©ã¦ã¶ã¼ã image/avif
㨠image/webp
ã®ä¸¡æ¹ã«å¯¾å¿ãã¦ããã¦ã¼ã¶ã¼ã®ããã«ããã®ã³ã¼ãã§ <link rel="preload" href="flower.webp" as="image" type="image/webp">
è¦ç´ ãæå®ããã¨ãå®éã«ã¯ã©ã¡ããã®ã¿ã使ç¨ããã¦ã image/avif
㨠image/webp
ç»åãã©ã¡ããäºåèªã¿è¾¼ã¿ããããã¨ã«ãªãã¾ãã
ãããã£ã¦ãåããªã½ã¼ã¹ã«å¯¾ãã¦è¤æ°ã®ç¨®é¡ã®äºåèªã¿è¾¼ã¿ãæå®ãããã¨ã¯æ¨å¥¨ããã¾ããããã®ä»£ããã«ãã¦ã¼ã¶ã¼ã®å¤§åãå®éã«ä½¿ç¨ããå¯è½æ§ã®ãã種é¡ã«ã®ã¿ãäºåèªã¿è¾¼ã¿ãæå®ãããã¨ãæåã®ææ³ã§ããä¸ã®ä¾ã®ã³ã¼ãã§ãimage/webp
ã®ç»åã«äºåèªã¿è¾¼ã¿ããããã¨ãæå®ãã¦ããªãã®ã¯ãã®ããã§ãã
ããããäºåèªã¿è¾¼ã¿ãããªãããã¨ãã£ã¦ãå®éã« image/webp
ç»åãå¿
è¦ãªäººã«ä½¿ç¨ãããªãããã§ã¯ããã¾ããããã©ã¦ã¶ã¼ã image/avif
ã«å¯¾å¿ãã¦ããªãããimage/webp
ã«å¯¾å¿ãã¦ããã¦ã¼ã¶ã¼ã®ããã«ãä¸è¨ã®ä¾ã®ã³ã¼ã㯠image/webp
ç»åã使ç¨ããã¾ãããä»ã®å¤§å¤æ°ã®ã¦ã¼ã¶ã¼ã«ä¸å¿
è¦ã«äºåèªã¿è¾¼ã¿ããããã¨ã¯ããã¾ããã
CORS ãæå¹ã«ãã¦åå¾ãããªã½ã¼ã¹ãäºåèªã¿è¾¼ã¿ããå ´å (fetch()
ãXMLHttpRequest
ããã©ã³ããªã©)ã <link>
è¦ç´ ã® crossorigin
屿§ã®è¨å®ã«ç¹å¥ãªæ³¨æãæãå¿
è¦ãããã¾ãããã®å±æ§ã¯ãåå¾ããªãªã¸ã³ãè¶ããªãå ´åã§ãããªã½ã¼ã¹ã® CORS ãèªè¨¼ã¢ã¼ãã«åããã¦è¨å®ããå¿
è¦ãããã¾ãã
ä¸è¨ã®ããã«ããããå½ã¦ã¯ã¾ãè峿·±ãã±ã¼ã¹ã® 1 ã¤ãããã©ã³ããã¡ã¤ã«ã§ãããã¾ãã¾ãªçç±ã«ããããããã¯å¿åã¢ã¼ãã® CORS ã使ç¨ãã¦ãã§ããããå¿ è¦ãããã¾ãï¼Font fetching requirementsåç §ï¼ã
ãã®ã±ã¼ã¹ãä¾ã¨ãã¦ä½¿ç¨ãã¦ã¿ã¾ããããå®å ¨ãªãµã³ãã«ã½ã¼ã¹ã³ã¼ã㯠GitHub ã®ã½ã¼ã¹ãµã³ãã«ã³ã¼ã (ããã³ã©ã¤ãç) ã«ããã¾ãã
<head>
<meta charset="utf-8" />
<title>Web font example</title>
<link
rel="preload"
href="fonts/cicle_fina-webfont.woff2"
as="font"
type="font/woff2"
crossorigin />
<link
rel="preload"
href="fonts/zantroke-webfont.woff2"
as="font"
type="font/woff2"
crossorigin />
<link href="style.css" rel="stylesheet" />
</head>
<body>
â¦
</body>
type
屿§ã« MIME ã¿ã¤ãã®ãã³ããæä¾ããã ãã§ãªããäºåèªã¿è¾¼ã¿ã® CORS ã¢ã¼ããæçµçãªãã©ã³ããªã½ã¼ã¹ãªã¯ã¨ã¹ãã¨ä¸è´ãããã¨ã確èªããããã«ã crossorigin
屿§ãæä¾ãã¦ãã¾ãã
<link>
è¦ç´ ã®åªããæ©è½ã®ã²ã¨ã¤ãã media
屿§ãåãå
¥ãããã¨ãã§ãããã¨ã§ãããã®å±æ§ã¯ãã¡ãã£ã¢ç¨®å¥ãæ¬æ ¼çãªã¡ãã£ã¢ã¯ã¨ãªã¼ãåãä»ãããã¨ãã§ããã®ã§ãã¬ã¹ãã³ã·ããªäºåèªã¿è¾¼ã¿ãè¡ããã¨ãã§ãã¾ãã
ä¾ãè¦ã¦ã¿ã¾ããã (GitHub ä¸ã®ã½ã¼ã¹ã³ã¼ãããã¢)ã
<head>
<meta charset="utf-8" />
<title>Responsive preload example</title>
<link
rel="preload"
href="bg-image-narrow.png"
as="image"
media="(max-width: 600px)" />
<link
rel="preload"
href="bg-image-wide.png"
as="image"
media="(min-width: 601px)" />
<link rel="stylesheet" href="main.css" />
</head>
<body>
<header>
<h1>My site</h1>
</header>
<script>
const mediaQueryList = window.matchMedia("(max-width: 600px)");
const header = document.querySelector("header");
if (mediaQueryList.matches) {
header.style.backgroundImage = "url(bg-image-narrow.png)";
} else {
header.style.backgroundImage = "url(bg-image-wide.png)";
}
</script>
</body>
media
屿§ã <link>
è¦ç´ ã«è¨å®ãããã¨ã§ããã¥ã¼ãã¼ããçãå ´åã¯å¹
ã®çãç»åãããã¥ã¼ãã¼ããåºãå ´åã¯å¹
ã®åºãç»åãäºåèªã¿è¾¼ã¿ããããã«ãã¾ãããã®ããã« Window.matchMedia
/ MediaQueryList
ã使ç¨ãã¦ãã¾ãï¼è©³ããã¯ã¡ãã£ã¢ã¯ã¨ãªã¼ã®ãã¹ããåç
§ï¼ã
ããã«ããããã¼ã¸ã®ã¬ã³ããªã³ã°æã«ãã®ãã©ã³ããå©ç¨ã§ããå¯è½æ§ãé«ããªãã FOUT ï¼ã¹ã¿ã¤ã«ä»ãåã®ããã¹ãã®ç¹æ» ï¼ãæ¸ãããã¨ãã§ãã¾ãã
ããã¯ãç»åã«éãããåã種é¡ã®ãã¡ã¤ã«ã§ãã£ã¦ãã大ããªæå³ãæã¡ã¾ãã帯åå¹ ã CPU ãéããã¦ããçãç»é¢ã§ã¯ãã·ã³ãã«ãª SVG ã®å³ãäºåèªã¿è¾¼ã¿ãã¦è¡¨ç¤ºããããã¦ã¼ã¶ã¼ã®ãªã½ã¼ã¹ã«ä½è£ãããå ´åã¯ãè¤é㪠JavaScript ãäºåèªã¿è¾¼ã¿ããããã使ã£ã¦ã¤ã³ã¿ã©ã¯ãã£ã㪠3D ã¢ãã«ãã¬ã³ããªã³ã°ããããããã¨ãã§ããã§ãããã
ã¹ã¯ãªããã¨äºåèªã¿è¾¼ã¿ã¡ã¢: JavaScript ã¢ã¸ã¥ã¼ã«ãæ±ãå ´åã¯ã代ããã« <link rel="modulepreload">
ã使ç¨ãã¦ãã ããã
ãããã®äºåèªã¿è¾¼ã¿ã«é¢ããããä¸ã¤ã®è¯ãç¹ã¨ãã¦ãã¹ã¯ãªããã使ã£ã¦å®è¡ã§ãããã¨ãæãããã¾ãã ä¾ãã°ãããã§ã¯ HTMLLinkElement
ã¤ã³ã¹ã¿ã³ã¹ã使ããããã DOM ã«åãä»ãã¦ãã¾ãã
const preloadLink = document.createElement("link");
preloadLink.href = "myscript.js";
preloadLink.rel = "preload";
preloadLink.as = "script";
document.head.appendChild(preloadLink);
ããã¯ããã©ã¦ã¶ã¼ã¯ myscript.js
ãã¡ã¤ã«ãäºåèªã¿è¾¼ã¿ãã¾ãããå®éã¯ã¾ã 使ç¨ããã¦ãã¾ãããããã使ç¨ããã«ã¯ã次ã®ããã«ãã¾ãã
const preloadedScript = document.createElement("script");
preloadedScript.src = "myscript.js";
document.body.appendChild(preloadedScript);
ããã¯ãã¹ã¯ãªãããäºåèªã¿è¾¼ã¿ãããããå¿ è¦ãªã¨ãã¾ã§å®è¡ãå»¶æããå ´åã«ä¾¿å©ã§ãã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ å ±<link rel="preload">
ãã¯ããã¨ããåæ§ã®ããã©ã¼ãã³ã¹å䏿©è½ã®æ¯è¼ãã§ãã¾ãã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