ã¦ã§ãã¹ãã¬ã¼ã¸ API ã¯ããã©ã¦ã¶ã¼ããã¼ã¨å¤ã®ãã¢ãå®å ¨ã«ä¿åã§ããä»çµã¿ãæä¾ãã¾ãã
ãã®è¨äºã§ã¯ããã®æè¡ã使ç¨ããæ¹æ³ãæé ã追ã£ã¦èª¬æãã¾ãã
åºæ¬æ¦å¿µã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãã¯ãã·ã³ãã«ãªãã¼ã¨å¤ã®çµã¿åãããä¿åãã¦ããããªãã¸ã§ã¯ãã«ä¼¼ã¦ãã¾ããããããã¯ä½åº¦ãã¼ã¸ãèªã¿è¾¼ãã§ãåå¨ãç¶ãã¾ãããã¼ã¯å¸¸ã«æååã§ãï¼ãªãããªãã¸ã§ã¯ãã¨åæ§ãæ´æ°ã®ãã¼ã¯èªåçã«æååã«å¤æããã¾ãï¼ããããã®å¤ã«ã¢ã¯ã»ã¹ããã«ã¯ãªãã¸ã§ã¯ãã¨åæ§ã«ãã¾ã㯠Storage.getItem()
㨠Storage.setItem()
ã¡ã½ããã使ç¨ãã¦è¡ãã¾ãã以ä¸ã® 3 è¡ã¯ãã¹ã¦ãï¼åãï¼ colorSetting ã¨ããé
ç®ãè¨å®ãã¾ãã
localStorage.colorSetting = "#a4509b";
localStorage["colorSetting"] = "#a4509b";
localStorage.setItem("colorSetting", "#a4509b");
ã¡ã¢: ã¦ã§ãã¹ãã¬ã¼ã¸ API (setItem
, getItem
, removeItem
, key
, length
) ã®ä½¿ç¨ãæ¨å¥¨ããã¦ããã®ã¯ãåç´ãªãªãã¸ã§ã¯ãããã¼ã¨å¤ã®æ ¼ç´å
ã¨ãã¦ä½¿ãã¨ããè½ã¨ãç©´ãé²ãããã§ãã
Web Storage ã«ã¯ã以ä¸ã® 2 種é¡ã®ä»çµã¿ãããã¾ãã
sessionStorage
) ã¯ããªãªã¸ã³æ¯ã«åå²ãããä¿åé åã管çããããã¯ãã¼ã¸ã»ãã·ã§ã³ã®é (ãã©ã¦ã¶ã¼ãéãã¦ããéããã¼ã¸ã®åèªã¿è¾¼ã¿ã復å
ãå«ã) 使ç¨å¯è½ã§ããlocalStorage
) ãåæ§ã§ããããã¡ãã¯ãã©ã¦ã¶ã¼ãéãããåã³éããããã¦ãæç¶ãã¾ãããããã®ä»çµã¿ã¯ Window.sessionStorage
ããã³ Window.localStorage
ãããã㣠(æ£ç¢ºã«ã¯ã対å¿ãã¦ãããã©ã¦ã¶ã¼ã¯ Window
ãªãã¸ã§ã¯ãã WindowLocalStorage
ããã³ WindowSessionStorage
ãªãã¸ã§ã¯ããå®è£
ãã¦ããããããã« localStorage
ããã³ sessionStorage
ããããã£ãããã¾ã) ãéãã¦ä½¿ç¨ã§ããããããã®ããããã£ã使ç¨ãã㨠Storage
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ãçæãã¦ããã¼ã¿ã¢ã¤ãã ã®ä¿åãåãåºããåé¤ãã§ãã¾ããåãçæå
ã«å¯¾ã㦠sessionStorage
㨠localStorage
ã¯ãå¥ã® Storage
ãªãã¸ã§ã¯ãã使ç¨ãã¾ãããããã¯å¥ã
ã«å¶å¾¡ããã¦æ©è½ãã¾ãã
ãã£ã¦ä¾ãã°ãå§ãã«ææ¸ä¸ã§ localStorage
ãå¼ã³åºã㨠Storage
ãªãã¸ã§ã¯ããè¿ãã¾ãããã®å¾ã«ææ¸ä¸ã§ sessionStorage
ãå¼ã³åºãã¨ãå¥ã® Storage
ãªãã¸ã§ã¯ããè¿ãã¾ããã©ã¡ããåãæ¹æ³ã§æä½ãããã¨ãã§ãã¾ãããæä½ã¯åå¥ã«è¡ããã¾ãã
ãã¼ã«ã«ã¹ãã¬ã¼ã¸ãå©ç¨ã§ããããã«ããã«ã¯ãã¾ãå¯¾å¿æ¸ã¿ã§ãããç¾å¨ã®ãã©ã¦ã¶ã¼ã»ãã·ã§ã³ã§å©ç¨å¯è½ã§ãããã確ãããã¹ãã§ãã
å©ç¨å¯è½ãã©ããã®æ¤è¨¼ã¡ã¢: ãã® API ã¯ããã¹ã¦ã®ä¸»è¦ãªãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ããå©ç¨ã§ãããã©ããã®ãã¹ããå¿ è¦ãªã®ã¯ãã¨ã¦ãå¤ããã©ã¦ã¶ã¼ã«å¯¾å¿ããªããã°ãªããªãå ´åããä¸è¨ã«è¨è¿°ããéãããç¶æ³ã«ããã¦ã®ã¿ã§ãã
ãã¼ã«ã«ã¹ãã¬ã¼ã¸ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã¯ã window
ãªãã¸ã§ã¯ãã« localStorage
ã¨ããåç§°ã®ããããã£ãæã£ã¦ãã¾ããããããåã«ããããã£ãåå¨ããã¨ä»®å®ãã¦ãã¾ãã¨ä¾å¤ãçºçããå¯è½æ§ãããã¾ããlocalStorage
ãªãã¸ã§ã¯ããåå¨ãã¦ããã¨ãã¦ãããã¾ãã¾ãªãã©ã¦ã¶ã¼ããã¼ã«ã«ã¹ãã¬ã¼ã¸ãç¡å¹åããè¨å®ãè¨ãã¦ãã¾ãã®ã§ããã¼ã«ã«ã¹ãã¬ã¼ã¸ãå©ç¨ã§ããä¿è¨¼ã¯ããã¾ããããã£ã¦ãã©ã¦ã¶ã¼ããã¼ã«ã«ã¹ãã¬ã¼ã¸ã«å¯¾å¿ãã¦ãã¦ãããã¼ã¸ä¸ã®ã¹ã¯ãªããã§ã¯å©ç¨ã§ããç¶æ
ã§ã¯ãªãå ´åãããã¾ãã
ä¾ãã°ããã©ã¦ã¶ã¼å
ã®ãã©ã¤ãã¼ããã©ã¦ã¸ã³ã°ã¢ã¼ãã§è¡¨ç¤ºãããææ¸ã«å¯¾ãã¦ããã©ã¦ã¶ã¼ã«ãã£ã¦ã¯ç©ºã® localStorage
ãªãã¸ã§ã¯ããè¿ãããããã¾ãããéã«ãæ£è¦ã® QuotaExceededError
ãçºçãããã¨ãããã¾ããããã¯å©ç¨ã§ããã¹ãã¬ã¼ã¸ç©ºéããã¹ã¦ä½¿ç¨ãã¦ãã¾ã£ããã¨ãæå³ãã¦ãã¾ãããå®éã«ã¯ã¹ãã¬ã¼ã¸ã¯å©ç¨å¯è½ã§ããæ©è½æ¤åºã¯ãã®ãããªã·ããªãªãèæ
®ã«å
¥ããã¹ãã§ãã
ãã¼ã«ã«ã¹ãã¬ã¼ã¸ã«å¯¾å¿æ¸ã¿ã§ããã¤ä½¿ç¨å¯è½ã§ãããã©ãããæ¤åºãã颿°ãã以ä¸ã«ç¤ºãã¾ãã
function storageAvailable(type) {
let storage;
try {
storage = window[type];
const x = "__storage_test__";
storage.setItem(x, x);
storage.removeItem(x);
return true;
} catch (e) {
return (
e instanceof DOMException &&
// everything except Firefox
(e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === "QuotaExceededError" ||
// Firefox
e.name === "NS_ERROR_DOM_QUOTA_REACHED") &&
// acknowledge QuotaExceededError only if there's something already stored
storage &&
storage.length !== 0
);
}
}
ã¾ãããã®é¢æ°ã®ä½¿ãæ¹ã¯ä»¥ä¸ã®ã¨ããã§ãã
if (storageAvailable("localStorage")) {
// ãã£ãã! ãã¼ã«ã«ã¹ãã¬ã¼ã¸ãã¡ããã¨å©ç¨ã§ãã¾ã
} else {
// æ®å¿µããã¼ã«ã«ã¹ãã¬ã¼ã¸ã¯å©ç¨ã§ãã¾ãã
}
storageAvailable('sessionStorage')
ãå¼ã³åºãã¨ã代ããã«ã»ãã·ã§ã³ã¹ãã¬ã¼ã¸ã確èªã§ãã¾ãã
ãã¼ã«ã«ã¹ãã¬ã¼ã¸ã®æ©è½ãæ¤åºããæ¹æ³ã®ç¥æ´ãã覧ãã ããã
ä¾ã¦ã§ãã¹ãã¬ã¼ã¸ã®å ¸åçãªä½¿ç¨æ³ã示ããããæ³ååè±ãã« Web Storage Demo ã¨åã¥ããã·ã³ãã«ãªä¾ã使ãã¾ããããã®ã©ã³ãã£ã³ã°ãã¼ã¸ ã«ã¯ãè²ããã©ã³ããè£ é£¾ç»åãã«ã¹ã¿ãã¤ãºããããã®ã³ã³ããã¼ã«ãããã¾ãã
å¥ã®é¸æè¢ãé¸ã¶ã¨ãå³åº§ã«ãã¼ã¸ãæ´æ°ããã¾ããããã«ã鏿å
容ã localStorage
ã«ä¿åãã¾ãã®ã§ãå¥ã®ãã¼ã¸ã«ç§»åããå¾ã«åã³ãã®ãã¼ã¸ãèªã¿è¾¼ãã¨ã鏿å
容ãç¶æããã¦ãã¾ãã
ã¾ãã event output ãã¼ã¸ãæä¾ãã¾ãããã®ãã¼ã¸ãå¥ã®ã¿ãã§éãã¨ãã©ã³ãã£ã³ã°ãã¼ã¸ã§é¸æè¢ã夿´ããã¨ãã« StorageEvent
ãçºçããã®ã«å¿ãã¦ãæ´æ°ãããã¹ãã¬ã¼ã¸ã®æ
å ±ãåºåãããã®ã確èªã§ãã¾ãã
ã¡ã¢: ä¸è¨ã®ãªã³ã¯ããå®éã®ãã¼ã¸ãåç §ãããã¨ãã§ãã¾ããã¾ããã½ã¼ã¹ã³ã¼ãã確èªã§ãã¾ãã
ã¹ãã¬ã¼ã¸ãåå¨ãã¦ãããã確èªããå§ãã« main.js ã§ãã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãããã§ã«åå¨ãã¦ããã (ããªãã¡ãéå»ã«ãã¼ã¸ã¸ã¢ã¯ã»ã¹ãã¦ããã) ã確èªãã¾ãã
if (!localStorage.getItem("bgcolor")) {
populateStorage();
} else {
setStyles();
}
Storage.getItem()
ã¡ã½ããã¯ãã¹ãã¬ã¼ã¸ãããã¼ã¿ã¢ã¤ãã ãåå¾ããããã«ä½¿ç¨ãã¾ãããã®ä¾ã§ã¯ã bgcolor
ã¢ã¤ãã ãåå¨ãããã確èªãã¦ãã¾ããã¢ã¤ãã ãåå¨ããªããã°ãæ¢åã®ã«ã¹ã¿ãã¤ãºå¤ãã¹ãã¬ã¼ã¸ã¸è¿½å ããããã« populateStorage()
ãå®è¡ãã¾ãããã§ã«å¤ãåå¨ããå ´åã¯ããã¼ã¸ã®ã¹ã¿ã¤ã«ãä¿åæ¸ã¿ã®å¤ã§æ´æ°ããããã« setStyles()
ãå®è¡ãã¾ãã
ã¡ã¢: Storage.length
ã使ç¨ãã¦ãã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãã空ã§ãããã確èªãããã¨ãã§ãã¾ãã
åè¿°ã®ã¨ãã Storage.getItem()
ã使ç¨ãã¦ãã¹ãã¬ã¼ã¸ããå¤ãåãåºããã¨ãã§ãã¾ããããã¯ãã¼ã¿ã¢ã¤ãã ã®ãã¼ã弿°ã§ãããã¾ããã¼ã¿ã®å¤ãè¿ãã¾ããä¾ãã°ä»¥ä¸ã®ããã«ãã¾ãã
function setStyles() {
const currentColor = localStorage.getItem("bgcolor");
const currentFont = localStorage.getItem("font");
const currentImage = localStorage.getItem("image");
document.getElementById("bgcolor").value = currentColor;
document.getElementById("font").value = currentFont;
document.getElementById("image").value = currentImage;
htmlElem.style.backgroundColor = `#${currentColor}`;
pElem.style.fontFamily = currentFont;
imgElem.setAttribute("src", currentImage);
}
ãã®ä¾ã§ãæåã® 3 è¡ã¯ãã¼ã«ã«ã¹ãã¬ã¼ã¸ããå¤ãåå¾ãã¦ãã¾ãã æ¬¡ã«ããã©ã¼ã è¦ç´ ã§è¡¨ç¤ºããå¤ããããã®å¤ã«æ´æ°ãã¦ããã¼ã¸ãåèªã¿è¾¼ã¿ããã¨ãã«åæããããã«ãã¾ãã æå¾ã«ããã¼ã¸ã®ã¹ã¿ã¤ã«ãè£ é£¾ç»åãæ´æ°ãã¦ãåèªã¿è¾¼ã¿æã«ã«ã¹ã¿ãã¤ãºè¨å®ã復å ãã¾ãã
ã¹ãã¬ã¼ã¸ã«å¤ãè¨å®ããStorage.setItem()
ã¯æ°ããªãã¼ã¿ã¢ã¤ãã ã使ãããããããã³ (ãã¼ã¿ã¢ã¤ãã ããã§ã«åå¨ãã¦ããã°) æ¢åã®å¤ãæ´æ°ããããã«ä½¿ç¨ãã¾ããããã¯å¼æ°ã 2 ã¤ãããã²ã¨ã¤ã¯ä½æã¾ãã¯å¤æ´ãããã¼ã¿ã¢ã¤ãã ã®ãã¼ãããã²ã¨ã¤ã¯ãã¼ã¿ã¢ã¤ãã ã«ä¿åããå¤ã§ãã
function populateStorage() {
localStorage.setItem("bgcolor", document.getElementById("bgcolor").value);
localStorage.setItem("font", document.getElementById("font").value);
localStorage.setItem("image", document.getElementById("image").value);
setStyles();
}
populateStorage()
颿°ã¯ãèæ¯è²ããã©ã³ããç»åã®ãã¹ã® 3 ã¤ã®ã¢ã¤ãã ããã¼ã«ã«ã¹ãã¬ã¼ã¸ã«ä¿åãã¾ããããã¦ããã¼ã¸ã®ã¹ã¿ã¤ã«ãªã©ãæ´æ°ããããã« setStyles()
颿°ãå®è¡ãã¾ãã
ã¾ããããããã®ãã©ã¼ã è¦ç´ ã« onchange
ãã³ãã©ã¼ãå«ãã¦ããããã©ã¼ã ã®å¤ã夿´ããããã³ã«ãã¼ã¿ãã¹ã¿ã¤ã«ãæ´æ°ãã¾ãã
bgcolorForm.onchange = populateStorage;
fontForm.onchange = populateStorage;
imageForm.onchange = populateStorage;
Storage
ã¯ãæååã®æ ¼ç´ã¨åãåºãã«ã®ã¿å¯¾å¿ãã¦ãã¾ããä»ã®ãã¼ã¿åãä¿åãããå ´åã¯ãæååã«å¤æããå¿
è¦ãããã¾ãããã¬ã¼ã³ãªãªãã¸ã§ã¯ããé
åã®å ´å㯠JSON.stringify()
ã使ç¨ãã¾ãã
const person = { name: "Alex" };
localStorage.setItem("user", person);
console.log(localStorage.getItem("user")); // "[object Object]" å½¹ã«ç«ã¡ã¾ãã
localStorage.setItem("user", JSON.stringify(person));
console.log(JSON.parse(localStorage.getItem("user"))); // { name: "Alex" }
ããããä»»æã®ãã¼ã¿åãæ ¼ç´ããããã«æ±ç¨çãªæ¹æ³ã¯ããã¾ãããããã«ãåå¾ããããªãã¸ã§ã¯ãã¯å ãªãã¸ã§ã¯ãã®ãã£ã¼ãã³ãã¼ã§ãããããã«å¯¾ãã¦å¤æ´ãã¦ããå ãªãã¸ã§ã¯ãã«ã¯å½±é¿ãã¾ããã
StorageEvent ã使ç¨ãã¦ã¹ãã¬ã¼ã¸ã®å¤æ´ã«åå¿ããStorageEvent
ã¯ãStorage
ãªãã¸ã§ã¯ãã夿´ããããã³ã«çºçãã¾ã (sessionStorage ã®å¤æ´ã§ã¯çºçãã¾ãã) ãããã¯ã夿´ãè¡ã£ããã¼ã¸ä¸ã§ã¯å¹æããªãã§ããããå®éã¯ãã¹ãã¬ã¼ã¸ã使ç¨ãããã¡ã¤ã³ä¸ã®å¥ã®ãã¼ã¸ã§ãã¹ãã¬ã¼ã¸ã®å¤æ´ã«åæããããã®ææ®µã§ããå¥ã®ãã¡ã¤ã³ä¸ã®ãã¼ã¸ã¯ãåè¿°ã®ã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãã«ã¢ã¯ã»ã¹ã§ãã¾ããã
ã¤ãã³ããã¼ã¸ (events.js ãã覧ãã ãã) ã® JavaScript ã¯ããã ãã§ãã
window.addEventListener("storage", (e) => {
document.querySelector(".my-key").textContent = e.key;
document.querySelector(".my-old").textContent = e.oldValue;
document.querySelector(".my-new").textContent = e.newValue;
document.querySelector(".my-url").textContent = e.url;
document.querySelector(".my-storage").textContent = JSON.stringify(
e.storageArea,
);
});
ããã§ã¯ window
ãªãã¸ã§ã¯ãã«ãç¾å¨ã®ãªãªã¸ã³ã«é¢é£ä»ãããã Storage
ãªãã¸ã§ã¯ãã夿´ãããã¨ãã«çºçããã¤ãã³ããªã¹ãã¼ã追å ãã¦ãã¾ããä¸è¨ã®ä¾ã§ãããã¨ããããã®ã¤ãã³ãã«é¢é£ä»ããããã¤ãã³ããªãã¸ã§ã¯ãã¯ã夿´ããããã¼ã¿ã®ãã¼ã夿´åã®å¤ãå¤ã夿´å¾ã®æ°ããå¤ãã¹ãã¬ã¼ã¸ã夿´ããææ¸ã® URLãã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãèªä½ (ãã®ä¸èº«ãè¦ããããã«æååãã¦ãã¾ã) ã¨ãã£ããå½¹ã«ç«ã¤æ
å ±ãå«ãã§ããããã¤ãã®ããããã£ãæã£ã¦ãã¾ãã
ã¦ã§ãã¹ãã¬ã¼ã¸ã«ã¯ããã¼ã¿ãåé¤ããããã®ã·ã³ãã«ãªã¡ã½ããã 2 ã¤ããã¾ãããã®ãã¢ã§ã¯ä½¿ç¨ãã¦ãã¾ããããããã¸ã§ã¯ãã¸ã¨ã¦ãç°¡åã«è¿½å ã§ãã¾ã:
Storage.removeItem()
ã¯å¼æ°ã 1 ã¤ãããåé¤ããããã¼ã¿ã¢ã¤ãã ã®ãã¼ã§ããããã¯ãå½è©²ãã¡ã¤ã³ã®ã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ããããã¼ã¿ã¢ã¤ãã ãåé¤ãã¾ããStorage.clear()
ã¯å¼æ°ããªããå½è©²ãã¡ã¤ã³ã®ã¹ãã¬ã¼ã¸ãªãã¸ã§ã¯ãå
¨ä½ã空ã«ãã¾ãã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