ç¾ä»£ã®ã¦ã§ããµã¤ããã¢ããªã±ã¼ã·ã§ã³ã§ã¨ã¦ãä¸è¬çãªããä¸ã¤ã®ã¿ã¹ã¯ã¯ãæ°ãããã¼ã¸å ¨ä½ãèªã¿è¾¼ããã¨ãªãã¦ã§ããã¼ã¸ã®ä¸é¨ãæ´æ°ããããã«ããµã¼ãã¼ããåã ã®ãã¼ã¿é ç®ãåå¾ãããã¨ã§ãããã®ä¸è¦å°ããªãã¨ãããµã¤ãã®ããã©ã¼ãã³ã¹ãåä½ã«å¤§ããªå½±é¿ãä¸ãã¦ãã¾ãããããã§ãã®è¨äºã§ã¯ããã®æ¦å¿µã説æãããããå¯è½ã«ããæè¡ãç¹ã«ãã§ãã API ãè¦ã¦ããã¾ãã
åæç¥è: HTMLããã³CSS ã®åºç¤ãçè§£ããããã¾ã§ã®ã¬ãã¹ã³ã§èª¬æãã JavaScript ãææ¡ãã¦ãããã¨ã å¦ç¿ææ:fetch()
ã使ç¨ããæ¹æ³ãã¦ã§ããã¼ã¸ã¯ã HTML ãã¼ã¸ã¨ãï¼é常ã¯ï¼ã¹ã¿ã¤ã«ã·ã¼ããã¹ã¯ãªãããç»åãªã©ããã®ä»ã®ãã¾ãã¾ãªãã¡ã¤ã«ããæ§æããã¦ãã¾ããã¦ã§ãã§ã®ãã¼ã¸èªã¿è¾¼ã¿ã®åºæ¬ã¢ãã«ã¯ããã©ã¦ã¶ã¼ããã¼ã¸ã表示ããããã«å¿ è¦ãªãã¡ã¤ã«ããµã¼ãã¼ã« 1 å以ä¸ã® HTTP ãªã¯ã¨ã¹ããè¡ãããµã¼ãã¼ãè¦æ±ããããã¡ã¤ã«ã§å¿çãããã¨ã§ããå¥ã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã¨ããã©ã¦ã¶ã¼ã¯æ°ãããã¡ã¤ã«ãè¦æ±ãããµã¼ãã¼ã¯ãã®ãã¡ã¤ã«ãå¿çãã¾ãã
ãã®ã¢ãã«ã¯ãå¤ãã®ãµã¤ãã«ã¨ã£ã¦å®ç§ã«åä½ãããã®ã§ãããããããã¼ã¿é§ååã®ã¦ã§ããµã¤ããèãã¦ã¿ã¾ããããä¾ãã°ã Vancouver Public Library ã®ãããªå³æ¸é¤¨ã®ã¦ã§ããµã¤ãã§ãããã®ãããªãµã¤ãã¯ãç¹ã«ãã¼ã¿ãã¼ã¹ã¸ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨èãããã¨ãã§ãã¾ããç¹å®ã®ã¸ã£ã³ã«ã®æ¬ãæ¤ç´¢ãããã以åã«åããæ¬ããã¨ã«ãããªãã好ããããªæ¬ãæ¨è¦ãã¦ãããããããã¾ããããã®ãããªå ´åã表示ããæ¬ã®æ°ããè¨å®ããã¦ããã¼ã¸ãæ´æ°ããå¿ è¦ãããã¾ãããããããã¼ã¸ã®ãããã¼ããµã¤ããã¼ãããã¿ã¼ãªã©ãã»ã¨ãã©ã®ãã¼ã¸ã³ã³ãã³ãã¯ãã®ã¾ã¾ã§ãããã¨ã«æ³¨æãã¦ãã ããã
徿¥ã®ã¢ãã«ã§ã¯ããã¼ã¸ã®ä¸é¨åã ããæ´æ°ããå¿ è¦ãããå ´åã§ãããã¼ã¸å ¨ä½ãåå¾ãã¦èªã¿è¾¼ã¾ãªããã°ãªããªããã¨ãåé¡ã§ãããããã§ã¯å¹çãæªãã使ãåæãæãªããã¦ãã¾ãã¾ãã
ããã§ã徿¥ã®ã¢ãã«ã®ä»£ããã«ãå¤ãã®ã¦ã§ããµã¤ãã§ã¯ JavaScript API ã使ç¨ãã¦ãµã¼ãã¼ã«ãã¼ã¿ããªã¯ã¨ã¹ããããã¼ã¸ãèªã¿è¾¼ããã¨ãªããã¼ã¸ã³ã³ãã³ããæ´æ°ãã¦ãã¾ãããã®ãããã¦ã¼ã¶ã¼ãæ°è£½åãæ¤ç´¢ããå ´åããã©ã¦ã¶ã¼ã¯ãã¼ã¸ã®æ´æ°ã«å¿ è¦ãªãã¼ã¿ããã¨ãã°è¡¨ç¤ºããæ°åæ¸ç±ã®è¨å®ã®ã¿ããªã¯ã¨ã¹ãããã®ã§ãã
ããã§ã®ä¸»ãª API ã¯ããã§ãã API ã§ããããã¯ããã¼ã¸å ã§åä½ãã JavaScript ãããµã¼ãã¼ã«å¯¾ã㦠HTTP ãªã¯ã¨ã¹ããè¡ããç¹å®ã®ãªã½ã¼ã¹ãåå¾ã§ããããã«ãããã®ã§ãããµã¼ãã¼ããããæä¾ããã¨ã JavaScript ã¯ãã®ãã¼ã¿ã使ç¨ãã¦ãã¼ã¸ãæ´æ°ãããã¨ãã§ãã¾ããé常㯠DOM æä½ API ã使ç¨ãããã¨ã«ãªãã¾ãããªã¯ã¨ã¹ãããããã¼ã¿ã¯ãå¤ãã®å ´å JSONã§ãããã¯æ§é åãã¼ã¿ã®è»¢éã«é©ããå½¢å¼ã§ããã HTML ãåãªãããã¹ãã§ãã£ã¦ãæ§ãã¾ããã
ãã㯠AmazonãYouTubeãeBay ãªã©ããã¼ã¿é§ååã®ãµã¤ãã«ããè¦ããããã¿ã¼ã³ã§ãããã®ã¢ãã«ã使ãã¨æ¬¡ã®ãããªãã¨ãå®ç¾ã§ãã¾ãã
ã¡ã¢: åæã®é ããã®ä¸è¬çãªæè¡ã¯ Asynchronous JavaScript and XML (AJAX) ã¨å¼ã°ãã¦ãã¾ãããããã㯠XML ãã¼ã¿ããªã¯ã¨ã¹ãããå¾åãããããã§ãããæè¿ã§ã¯é常ãã®ãããªãã¨ã¯ããã¾ãããï¼JSON ããªã¯ã¨ã¹ããããã¨ã®æ¹ãå¤ãã§ãããï¼ãçµæçã«ã¯åããã¨ã§ããã "AJAX" ã¨ããç¨èªã¯ä»ã§ããã®æè¡ã説æããã®ã«ãã使ç¨ããã¦ãã¾ãã
ããã«é«éåããããã«ãä¸é¨ã®ãµã¤ãã§ã¯ãæåã«ãªã¯ã¨ã¹ããããã¨ãã«ã¦ã¼ã¶ã¼ã®ã³ã³ãã¥ã¼ã¿ã¼ã«è³ç£ã ãã¼ã¿ãä¿åãã¦ãã¾ããã¤ã¾ãããã®å¾ã®è¨ªåã§ã¯ããã¼ã¸ãæåã«èªã¿è¾¼ããã³ã«æ°ããã³ãã¼ããã¦ã³ãã¼ãããã«ã ãã¼ã«ã«ãã¼ã¸ã§ã³ã使ç¨ããã®ã§ããã³ã³ãã³ãã¯ãæ´æ°ãããã¨ãã ããµã¼ãã¼ããåèªã¿è¾¼ã¿ããã¾ãã
ãã§ãã APIããã§ã¯ããã§ãã API ã®ä¾ãããã¤ãè¦ã¦ã¿ã¾ãããã
ããã¹ãã³ã³ãã³ãã®èªã¿åããã®ä¾ã§ã¯ãããã¤ãã®ç°ãªãããã¹ããã¡ã¤ã«ãããã¼ã¿ããªã¯ã¨ã¹ããããããã使ç¨ãã¦ã³ã³ãã³ãã¨ãªã¢ã«ãã¼ã¿ãå ¥åãã¾ãã
å®éã®ã¢ããªã±ã¼ã·ã§ã³ã§ã¯ãPHPãPythonãNode ãªã©ã®ãµã¼ãã¼ãµã¤ãã®è¨èªã使ç¨ãã¦ããã¼ã¿ãã¼ã¹ãããã¼ã¿ãè¦æ±ããã»ããè¯ãã§ããããããããããã§ã¯ã·ã³ãã«ã«ãã¯ã©ã¤ã¢ã³ãå´ã®é¨åã«éä¸ãããã¨æãã¾ãã
ãã®ä¾ãå§ããã«ã¯ã fetch-start.html 㨠4 ã¤ã®ããã¹ããã¡ã¤ã«ï¼verse1.txt, verse2.txt, verse3.txt, verse4.txtï¼ã®ãã¼ã«ã«ã³ãã¼ããèªåã®ã³ã³ãã¥ã¼ã¿ã¼ã®æ°ãããã£ã¬ã¯ããªã¼ã«ä½ã£ã¦ãã ããããã®ä¾ã§ã¯ããããããã¦ã³ã¡ãã¥ã¼ã§é¸æãããã¨ãã«ãè©©ã®ç°ãªãé£ï¼ãããåãã®ãã®ï¼ãåå¾ãããã¨ã«ãã¦ãã¾ãã
<script>
è¦ç´ ã®ããå
å´ã«ã以ä¸ã®ã³ã¼ãã追å ãã¦ãã ãããããã¯ã <select>
è¦ç´ 㨠<pre>
è¦ç´ ã¸ã®åç
§ãæ ¼ç´ãã <select>
è¦ç´ ã«ãªã¹ãã¼ã追å ãã¦ãã¦ã¼ã¶ã¼ãæ°ããå¤ã鏿ããã¨ãã«ãæ°ããå¤ã弿°ã¨ã㦠updateDisplay()
ã¨ãã颿°ã«æ¸¡ãããããã«ãããã®ã§ãã
const verseChoose = document.querySelector("select");
const poemDisplay = document.querySelector("pre");
verseChoose.addEventListener("change", () => {
const verse = verseChoose.value;
updateDisplay(verse);
});
updateDisplay()
颿°ãå®ç¾©ãã¾ããããã¾ãã¯ãã£ãã®ã³ã¼ããããã¯ã®ä¸ã«ä»¥ä¸ãæ¸ãè¶³ãã¾ããããã¯é¢æ°ã®ç©ºã®ç®±ã§ãã
function updateDisplay(verse) {
}
ãã®é¢æ°ã¯ãå¾ã§å¿
è¦ã«ãªãã®ã§ãèªã¿è¾¼ãããã¹ããã¡ã¤ã«ãæã示ãé¢é£ URL ãæ§ç¯ãããã¨ããéå§ãã¾ãã <select>
è¦ç´ ã®å¤ã¯ã鏿ããã¦ãã <option>
ã®ä¸ã®ããã¹ãã¨å¸¸ã«åãã§ãï¼value 屿§ã§ç°ãªãå¤ãæå®ããªãéãï¼ã対å¿ããé£ã®ããã¹ããã¡ã¤ã«ã¯ "verse1.txt" ã§ã HTML ãã¡ã¤ã«ã¨åããã£ã¬ã¯ããªã¼ã«ããã®ã§ããã¡ã¤ã«åã ãã§ååã§ãã
ãã ãã¦ã§ããµã¼ãã¼ã¯ããã¦ã大æåå°æåãåºå¥ãã¾ãããä»åã®ãã¡ã¤ã«åã«ã¹ãã¼ã¹ãå«ã¾ãã¦ãã¾ããã "Verse 1" ã "verse1.txt" ã«å¤æããããã«ã¯ã 'V' ãå°æåã«ãã¦ãã¹ãã¼ã¹ãåãé¤ãã .txt ãæ«å°¾ã«è¿½å ããªããã°ãªãã¾ããããã㯠replace()
㨠toLowerCase()
ããã¨åãªããã³ãã¬ã¼ããªãã©ã«ã§å®ç¾ã§ãã¾ãã以ä¸ã®ã³ã¼ãã updateDisplay()
颿°ã®ä¸ã«è¿½å ãã¦ãã ããã
verse = verse.replace(" ", "").toLowerCase();
const url = `${verse}.txt`;
ã¤ãã«ãã§ãã API ã使ç¨ããæºåãã§ãã¾ããã
// `fetch()` ãå¼ã³åºãã URL ãæ¸¡ãã¾ãã
fetch(url)
// fetch() ã¯ãããã¹ãè¿ãã¾ãããµã¼ãã¼ããã¬ã¹ãã³ã¹ãåãåãã¨ã
// ãããã¹ã® `then()` ãã³ãã©ã¼ããã®ã¬ã¹ãã³ã¹ã¨ã¨ãã«å¼ã³åºããã¾ãã
.then((response) => {
// ãã®ãã³ãã©ã¼ã¯ããªã¯ã¨ã¹ããæåããªãã£ãå ´åã«ã¨ã©ã¼ãå ±åãã¾ãã
if (!response.ok) {
throw new Error(`HTTP error: ${response.status}`);
}
// ããã§ãªãå ´åï¼ã¬ã¹ãã³ã¹ãæåããå ´åï¼ããã³ãã©ã¼ã¯
// response.text() ãå¼ã³åºãã¦ã¬ã¹ãã³ã¹ãããã¹ãã¨ãã¦åå¾ãã
// ç´ã¡ã« `response.text()` ãè¿ããããã¹ãè¿ãã¾ãã
return response.text();
})
// response.text() ãæåãããããã®ããã¹ãã§ `then()` ãã³ãã©ã¼ã
// å¼ã³åºãããããã `poemDisplay` ããã¯ã¹ã«ã³ãã¼ãã¾ãã
.then((text) => {
poemDisplay.textContent = text;
})
// èµ·ããããã¨ã©ã¼ããã£ãããã`poemDisplay` ããã¯ã¹ã«ã¡ãã»ã¼ã¸ã
// 表示ãã¾ãã
.catch((error) => {
poemDisplay.textContent = `Could not fetch verse: ${error}`;
});
ããã§ã¯ãããªãå¤ãã®ãã¨ã解説ãã¾ãã
ã¾ãããã§ãã API ã®ã¨ã³ããªã¼ãã¤ã³ã㯠fetch()
ã¨ããã°ãã¼ãã«é¢æ°ã§ãURL ã弿°ã¨ãã¦å¼ã³åºãã¾ãï¼ã«ã¹ã¿ã è¨å®ã®ããã«å¥ã®ãªãã·ã§ã³ã®å¼æ°ãåãã¾ãããããã§ã¯ä½¿ç¨ãã¾ããï¼ã
次ã«ã fetch()
ã¯ãããã¹ (Promise
) ãè¿ãéåæ API ã§ ãããããããä½ãããããªãå ´åã¯ãéåæ JavaScriptã®ã¢ã¸ã¥ã¼ã«ãç¹ã«ãããã¹ãèªãã§ãããã®è¨äºã«æ»ã£ã¦ãã¦ãã ããããã®è¨äºã«ã¯ fetch()
API ã«ã¤ãã¦ãæ¸ããã¦ãããã¨ãåããã¨æãã¾ãã
ã¤ã¾ãã fetch()
ã¯ãããã¹ãè¿ãã®ã§ãè¿ããããããã¹ã® then()
ã¡ã½ããã«é¢æ°ã渡ãã¾ãããã®ã¡ã½ããã¯ã HTTP ãªã¯ã¨ã¹ãããµã¼ãã¼ããã¬ã¹ãã³ã¹ãä¿æããã¨ãã«å¼ã³åºããã¾ãããã³ãã©ã¼ã§ã¯ããªã¯ã¨ã¹ããæåãããã©ããã調ã¹ãæåããªãã£ãå ´åã¯ã¨ã©ã¼ãçºçããã¾ããããã§ãªãå ´å㯠response.text()
ãå¼ã³åºãã¦ãã¬ã¹ãã³ã¹ã®æ¬æãããã¹ãã§åå¾ãã¾ãã
response.text()
ãéåæã§ãããã¨ãããã£ãã®ã§ããããè¿ããããã¹ãè¿ãããã®æ°ãããããã¹ã® then()
ã¡ã½ããã«é¢æ°ã渡ãã¾ãããã®é¢æ°ã¯ãã¬ã¹ãã³ã¹ã®ããã¹ãã®æºåãã§ããã¨ãã«å¼ã³åºããããã®ä¸ã§ <pre>
ãããã¯ããã®ããã¹ãã§æ´æ°ãã¾ãã
æå¾ã« catch()
ãã³ãã©ã¼ãæå¾ã«é£çµããå¼ã³åºãããéåæé¢æ°ããã®ãã³ãã©ã¼ã§çºçããã¨ã©ã¼ãææãã¦ãã¾ãã
ãã®ä¾ã®åé¡ç¹ã¨ãã¦ãæåã«èªã¿è¾¼ãã ã¨ãã«è©©ã表示ãããªããã¨ãæãããã¾ãããããä¿®æ£ããã«ã¯ãã³ã¼ãã®ä¸çªä¸ï¼éãããã </script>
ã¿ã°ã®ããä¸ï¼ã«ä»¥ä¸ã® 2 è¡ã追å ãã¦ãæ¢å®ã§ 1 ç¯ãèªã¿è¾¼ã¿ã <select>
è¦ç´ ãå¸¸ã«æ£ããå¤ã示ãã¦ãããã¨ã確èªãã¾ãã
updateDisplay("Verse 1");
verseChoose.value = "Verse 1";
ä¾ããµã¼ãã¼ããæä¾ãã
ç¾ä»£ã®ãã©ã¦ã¶ã¼ã¯ããã¼ã«ã«ãã¡ã¤ã«ããä¾ãå®è¡ããã ãã§ã¯ã HTTP ãªã¯ã¨ã¹ããåä½ããã¾ãããããã¯ãã»ãã¥ãªãã£ä¸ã®å¶ç´ãããããã§ãï¼ã¦ã§ãã»ãã¥ãªãã£ã«ã¤ãã¦ã¯ãã¦ã§ããµã¤ãã®ã»ãã¥ãªãã£ããèªã¿ãã ãã)ã
ãããåé¿ããã«ã¯ããã¼ã«ã«ã®ã¦ã§ããµã¼ãã¼ã§ãã®ä¾ãåä½ããã¦ãã¹ãããå¿ è¦ãããã¾ãããã®æ¹æ³ãæ¢ãã«ã¯ããã¼ã«ã«ãã¹ããµã¼ãã¼ãè¨å®ããããã®ã¬ã¤ããèªãã§ãã ããã
ç¼¶è©°å±ãã®ä¾ã§ã¯ã The Can Store ã¨ãããµã³ãã«ãµã¤ãã使ãã¾ãããããã¯ãç¼¶è©°ã ãã販売ããæ¶ç©ºã®ã¹ã¼ãã¼ãã¼ã±ããã§ãããã®ä¾ã¯ GitHub ä¸ã§ã©ã¤ãå®è¡ãããã¨ãã§ããã½ã¼ã¹ã³ã¼ããè¦ããã¨ãã§ãã¾ãã
æ¢å®ã§ããµã¤ãã«ã¯ãã¹ã¦ã®è£½åã表示ããã¾ãããå·¦åã®ãã©ã¼ã ã³ã³ããã¼ã«ã使ç¨ãã¦ãã«ãã´ãªã¼ãã¾ãã¯æ¤ç´¢èªãã¾ãã¯ãã®ä¸¡æ¹ã§è£½åããã£ã«ã¿ãªã³ã°ãããã¨ãã§ãã¾ãã
ã«ãã´ãªã¼ãæ¤ç´¢ãã¼ã¯ã¼ãã«ããååã®ãã£ã«ã¿ãªã³ã°ããã¼ã¿ã UI ã«æ£ãã表示ãããããã«æååãæä½ãããªã©ãããªãå¤ãã®è¤éãªã³ã¼ããåå¨ãã¾ãããã®è¨äºã§ã¯ãã®ãã¹ã¦ã«ã¤ãã¦èª¬æãã¾ããããã³ã¼ãã®ä¸ã«åºç¯ãªã³ã¡ã³ããããã¾ããï¼can-script.jsãè¦ã¦ãã ããï¼ã
ã§ããããã§ããã®ã³ã¼ãã«ã¤ãã¦ã¯èª¬æãã¦ããã¾ãã
ãã§ããã使ç¨ã§ããæåã®ãããã¯ã¯ã JavaScript ã§éå§ãããã¨ããã«ããã¾ãã
fetch("products.json")
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error: ${response.status}`);
}
return response.json();
})
.then((json) => initialize(json))
.catch((err) => console.error(`Fetch problem: ${err.message}`));
fetch()
颿°ã¯ãããã¹ãè¿ãã¾ãããããæåè£ã«å®äºããã¨ãä¸ã¤ç®ã® .then()
ãããã¯ã®ä¸ã«ãã颿°ã¯ããããã¯ã¼ã¯ããè¿ããã response
ãåãåãã¾ãã
ãã®é¢æ°ã®ä¸ã§ã¯ã以ä¸ã®ãããªãã¨ãè¡ã£ã¦ãã¾ãã
404 Not Found
ã®ãããªå¤ï¼ãè¿ããªãã£ããã©ãã調ã¹ã¾ããããã¨ã©ã¼ãçºçããå ´åã¯ããã®ã¨ã©ã¼ãå ±åãã¾ããjson()
ãå¼ã³åºãã¾ããããã«ããããã¼ã¿ã¯ JSON ãªãã¸ã§ã¯ãã¨ãã¦åå¾ããã¾ããresponse.json()
ãè¿ããããã¹å¤ãè¿ãã¾ããæ¬¡ã«ãè¿ããããããã¹ã® then()
ã¡ã½ããã«ã颿°ã渡ãã¾ãããã®é¢æ°ã«ã¯ãã¬ã¹ãã³ã¹ãã¼ã¿ã JSON ã¨ãã¦å«ããªãã¸ã§ã¯ããæ¸¡ãããããã initialize()
颿°ã«æ¸¡ãã¾ãããã®é¢æ°ã¯ãã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ãã¹ã¦ã®è£½åã表示ããå¦çãéå§ãã¾ãã
ã¨ã©ã¼ãå¦çããããã«ãé£éã®æå¾ã« .catch()
ãããã¯ãé£éããã¦ãã¾ããããã¯ãä½ããã®çç±ã§ãããã¹ã失æããå ´åã«å®è¡ããã¾ãããã®ä¸ã«ã¯ã弿°ã¨ãã¦æ¸¡ããã颿°ã err
ãªãã¸ã§ã¯ããå«ã¾ãã¦ãã¾ãããã® err
ãªãã¸ã§ã¯ãã使ç¨ãã¦ãçºçããã¨ã©ã¼ãã©ããããã®ããä¼ãããã¾ããããã§ã¯åç´ãª console.error()
ã使ç¨ãã¦ä¼ãã¦ãã¾ãã
ããããå®å
¨ãªã¦ã§ããµã¤ãã§ããã°ãã¦ã¼ã¶ã¼ã®ç»é¢ã«ã¡ãã»ã¼ã¸ã表示ããããç¶æ³ãæ¹åããããã®ãªãã·ã§ã³ãæä¾ããããã¦ãããä¸åã«ãã®ã¨ã©ã¼ãå¦çãã¾ãããããã§ã¯ãåç´ãª console.error()
以ä¸ã®ãã®ã¯å¿
è¦ããã¾ããã
失æã®ã±ã¼ã¹ãèªåã§ãã¹ããããã¨ãã§ãã¾ãã
localhost:8000
ããï¼ããã©ã¦ã¶ã¼ã®éçºè
ã³ã³ã½ã¼ã«ãè¦ã¾ãã "Fetch problem: HTTP error: 404" ã®ãããªã¡ãã»ã¼ã¸ã表示ãããã¯ãã§ãã2 ã¤ç®ã®ãã§ãããããã¯ã¯ fetchBlob()
颿°ã®ä¸ã«ããã¾ãã
fetch(url)
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error: ${response.status}`);
}
return response.blob();
})
.then((blob) => showProduct(blob, product))
.catch((err) => console.error(`Fetch problem: ${err.message}`));
ããã¯ã json()
ã使ç¨ãã代ããã« blob()
ã使ç¨ãããã¨ãé¤ãã¦ãåã®ãã®ã¨ã»ã¨ãã©åãæ¹æ³ã§åä½ãã¾ãããã®å ´åãã¬ã¹ãã³ã¹ãç»åãã¡ã¤ã«ã¨ãã¦è¿ãããã®ã§ããã®ããã«ä½¿ç¨ãããã¼ã¿å½¢å¼ã¯ Blob ã§ãï¼ãã®ç¨èªã¯ "Binary Large Object" ã®çç¥å½¢ã§ãããåºæ¬çã«ç»åãåç»ãã¡ã¤ã«ãªã©ã大ããªãã¡ã¤ã«ã®ãããªãªãã¸ã§ã¯ãã表ãããã«ä½¿ç¨ã§ãã¾ãï¼ã
Blob ãæ£å¸¸ã«åä¿¡ããããããã showProduct()
颿°ã«æ¸¡ãã¦ã表示ããã¾ãã
æã
ãç¹ã«å¤ãã³ã¼ãã§ã¯ãXMLHttpRequest
(ãã°ãã° "XHR" ã¨ç¥ããã¾ã) ã¨ããå¥ã® API ã使ã£ã¦ãHTTP ãªã¯ã¨ã¹ããè¡ã£ã¦ããã®ãè¦ããããã¨ãããã¾ãããã㯠Fetch ãããåã«ãããAJAX ãå®è£
ããããã«å®éã«åºã使ç¨ãããæåã® API ã§ãããã§ããã° Fetch ã使ç¨ãããã¨ããå§ããã¾ããXMLHttpRequest
ãããã·ã³ãã«ãª API ã§ãããå¤ãã®æ©è½ãæãã¦ãã¾ããããã§ã¯ãXMLHttpRequest
ã使ç¨ããä¾ã«ã¤ãã¦ã¯ç´¹ä»ãã¾ããããæåã®ç¼¶è©°å±ã®ãªã¯ã¨ã¹ãã® XMLHttpRequest
ãã¼ã¸ã§ã³ãã©ã®ããã«ãªããã示ãã¾ãã
const request = new XMLHttpRequest();
try {
request.open("GET", "products.json");
request.responseType = "json";
request.addEventListener("load", () => initialize(request.response));
request.addEventListener("error", () => console.error("XHR error"));
request.send();
} catch (error) {
console.error(`XHR error ${request.status}`);
}
ããã«ã¯ 5 ã¤ã®æ®µéãããã¾ãã
XMLHttpRequest
ãªãã¸ã§ã¯ãã使ãã¾ããopen()
ã¡ã½ãããå¼ã³åºãã¦ãåæåãã¾ããload
ã¤ãã³ãã«ã¤ãã³ããªã¹ãã¼ã追å ãã¾ãããã®ã¤ãã³ãã¯ãã¬ã¹ãã³ã¹ãæ£å¸¸ã«å®äºããã¨ãã«çºè¡ããã¾ãããªã¹ãã¼ã§ã¯ããã¼ã¿ãæå®ã㦠initialize()
ãå¼ã³åºãã¾ããerror
ã¤ãã³ãã«ã¤ãã³ããªã¹ãã¼ã追å ãããªã¯ã¨ã¹ããã¨ã©ã¼ã«ãªã£ãã¨ãã«çºè¡ãããããã«ãã¾ããã¾ãã open()
ã send()
ã§çºçããã¨ã©ã¼ãå¦çããããã«ãå
¨ä½ã try...catch ãããã¯ã§å²ãå¿
è¦ãããã¾ãã
ãã§ãã API ãããããæ¹åããã¦ããã¨æããã¨ãæå¾ ãã¾ããç¹ã«ã 2 ã¤ã®ç°ãªãå ´æã§ã¨ã©ã¼ãå¦çããªããã°ãªããªãç¹ãè¦ã¦ãã ããã
ã¾ã¨ããã®è¨äºã§ã¯ããã§ããã使ã£ã¦ãµã¼ãã¼ãããã¼ã¿ãåå¾ãã使¥ãéå§ããæ¹æ³ã示ãã¾ããã
é¢é£æ å ±ãã®è¨äºã§ã¯ããã¾ãã¾ãªãã¼ããåãä¸ãã¾ããããå®éã«è¡¨é¢ãããã£ãã«éãã¾ããããã®ãããªãã¼ãã«ã¤ãã¦ã¯ã以ä¸ã®è¨äºã§ãã詳ãã説æãã¦ãã¾ãã
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