æ©èœæ€åºãçšããJavaScriptã®ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ããç¿åŸãããã©ãŠã¶ã®æ§èœã«é¢ããããäžçäžã®ãŠãŒã¶ãŒã«å ç¢ã§ã¢ã¯ã»ã·ãã«ããã€é«æ§èœãªãŠã§ãäœéšãæäŸããŸãã
ãŠã§ããã©ãããã©ãŒã ã®æ©èœæ€åºïŒã°ããŒãã«ãªå©çšè ã察象ãšããJavaScriptã«ããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ã
çµ¶ããé²åãããŠã§ãéçºã®äžçã«ãããŠã倿§ãªãã©ãŠã¶ãããã€ã¹éã§äžè²«æ§ã®ããã¢ã¯ã»ã·ãã«ãªãŠãŒã¶ãŒäœéšãä¿èšŒããããšã¯æãéèŠã§ããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãå ç¢ãªæ©èœæ€åºãšçµã¿åãããããšã§ããã®ç®æšãéæããããã®åŒ·åãªæŠç¥ãæäŸããŸãããã®ã¢ãããŒãã«ãããéçºè ã¯ææ°ã®ãŠã§ãæè¡ã掻çšãã€ã€ãå€ããŸãã¯æ§èœã®äœããã©ãŠã¶ã«å¯ŸããŠã¯æ©èœãé©åã«çž®éïŒã°ã¬ãŒã¹ãã«ãã°ã¬ãŒãïŒãããããšãã§ããŸãããã®ã¬ã€ãã§ã¯ãã°ããŒãã«ãªå©çšè ã察象ãšãããŠã§ããã©ãããã©ãŒã ã®æ©èœæ€åºãšJavaScriptã«ããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã«ã€ããŠå æ¬çã«è§£èª¬ããŸãã
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ããšã¯ïŒ
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãäžæ žãšãªãã³ã³ãã³ããšæ©èœãåªå ãããŠã§ãéçºææ³ã§ããããã¯ããã©ãŠã¶ãããã€ã¹ã«é¢ãããããã¹ãŠã®äººãå©çšã§ããåºæ¬çã§æ©èœçãªãŠã§ããµã€ããæ§ç¯ããããšããå§ãŸããŸãããã®åŸãæ©èœæ€åºãçšããŠãã¢ãã³ãªãã©ãŠã¶ãæã€ãŠãŒã¶ãŒã«å¯ŸããŠã¯é«åºŠãªæ©èœã§äœéšãåäžãããŸãããŸãé äžãªåå°ãç¯ãããã®åŸã«è£ 食çãªèŠçŽ ã远å ããŠãããããªãã®ã ãšèããŠãã ããã
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®å¯Ÿæ¥µã«ããã®ãã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ã§ããããã¯ææ°ã®ãã©ãŠã¶åãã«æ§ç¯ãããã®åŸãå€ããã©ãŠã¶ã§ãåäœããããã«ïŒå°ãªããšãå£ããªãããã«ïŒè©Šã¿ãææ³ã§ããäžè¬çã«ãããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®æ¹ãããå ç¢ã§å°æ¥æ§ã®ããã¢ãããŒããšèŠãªãããŠããŸãã
ãªãããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ã°ããŒãã«ãªå©çšè ã«ãšã£ãŠéèŠãªã®ãïŒ
ãŠã§ãã¯ã°ããŒãã«ãªãã©ãããã©ãŒã ã§ããããŠãŒã¶ãŒã¯æ§ã ãªããã€ã¹ããã©ãŠã¶ã䜿çšããŠãŠã§ããµã€ãã«ã¢ã¯ã»ã¹ããŸãããããã¯ã¢ãã³ãªãŠã§ãæè¡ãžã®å¯Ÿå¿ã¬ãã«ãæ§ã ã§ããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ããã°ããŒãã«ãªå©çšè ã«ãªãŒãããããã«äžå¯æ¬ ãªçç±ã¯ä»¥äžã®éãã§ãã
- ã¢ã¯ã»ã·ããªãã£ïŒ æ§é ããã£ããããŠããŠã»ãã³ãã£ãã¯ã«æ£ãããŠã§ããµã€ãã¯ãã¢ã¯ã»ã·ããªãã£ã®åŒ·åºãªåºç€ãæäŸããŸããæ¯æŽæè¡ã«äŸåããå¯èœæ§ã®ããé害ãæã€ãŠãŒã¶ãŒããäžæ žãšãªãã³ã³ãã³ããæ©èœã«ã¢ã¯ã»ã¹ã§ããŸãã
- ãã©ãŠã¶äºææ§ïŒ 誰ããææ°ããŒãžã§ã³ã®ChromeãFirefoxã䜿çšããŠããããã§ã¯ãããŸãããç¹ã«ç¹å®ã®å°åã§ã¯ãå€ãã®ãŠãŒã¶ãŒãå€ããã©ãŠã¶ãæ©èœãå¶éããããã©ãŠã¶ã䜿çšããŠããå¯èœæ§ããããŸããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ããããã®ãã©ãŠã¶äžã§ããŠã§ããµã€ããå©çšå¯èœã§ããç¶ããããšãä¿èšŒããŸãã
- ããã©ãŒãã³ã¹ïŒ 軜éãªã³ã¢ããå§ãããµããŒããããŠããå Žåã«ã®ã¿æ©èœåŒ·åã远å ããããšã§ãç¹ã«äžçã®å€ãã®å°åã§æ®åããŠããäœéãããã¯ãŒã¯ãäœæ§èœããã€ã¹ã«ãããŠããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- å埩åïŒã¬ãžãªãšã³ã¹ïŒïŒ ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãäºæãã¬ãšã©ãŒããã©ãŠã¶ã®äžæŽåã«å¯ŸããŠãŠã§ããµã€ãã®å埩åãé«ããŸããç¹å®ã®JavaScriptæ©èœã倱æããŠããäžæ žãšãªãæ©èœã¯åŒãç¶ãå©çšå¯èœã§ãã
- å°æ¥æ§ïŒ ãŠã§ãæšæºãšãã©ãŠã¶æè¡ã¯åžžã«é²åããŠããŸããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã«ãããå€ããã©ãŠã¶ãæã€ãŠãŒã¶ãŒã®äœéšãæãªãããšãªããæ°ããæ©èœãå°å ¥ããããšãã§ããŸãã
æ©èœæ€åºïŒããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®éµ
æ©èœæ€åºãšã¯ãç¹å®ã®ãŠã§ããã©ãŠã¶ãç¹å®ã®æ©èœãAPIããµããŒãããŠãããã©ããã倿ããããã»ã¹ã§ããããã«ããããã©ãŠã¶ã®èœåã«åºã¥ããŠéžæçã«æ©èœåŒ·åãé©çšããããšãã§ããŸããä¿¡é Œæ§ã«æ¬ ããå¯èœæ§ããããã©ãŠã¶ã¹ãããã£ã³ã°ïŒãã©ãŠã¶ã®ååãšããŒãžã§ã³ãæ€åºããããšïŒã«é Œãã®ã§ã¯ãªããæ©èœæ€åºã¯ããæ£ç¢ºã§å ç¢ãªã¢ãããŒããæäŸããŸãã
æ©èœæ€åºã®ä»çµã¿
æ©èœæ€åºã¯éåžžãã°ããŒãã«ãªããžã§ã¯ãïŒwindow
ãdocument
ãªã©ïŒäžã®ããããã£ãã¡ãœããã®ååšã確èªããããç¹å®ã®APIã䜿çšããŠã¿ãŠãšã©ãŒããã£ãããããããããšãå«ã¿ãŸããããããã£ãã¡ãœãããååšããããAPIåŒã³åºããæåããå Žåããã®æ©èœã¯ãµããŒããããŠãããšèŠãªãããšãã§ããŸãã
äžè¬çãªæ©èœæ€åºã®ææ³
- ããããã£æ€åºïŒ ã°ããŒãã«ãªããžã§ã¯ãäžã®ããããã£ã®ååšã確èªããã
- ã¡ãœããæ€åºïŒ ã°ããŒãã«ãªããžã§ã¯ãäžã®ã¡ãœããã®ååšã確èªããã
- APIæ€åºïŒ ç¹å®ã®APIã䜿çšããŠã¿ãŠãšã©ãŒããã£ããããã
- CSSæ©èœã¯ãšãªïŒ CSSã®
@supports
ã«ãŒã«ã䜿çšããŠãCSSæ©èœã®ãµããŒããæ€åºããã
JavaScriptã«ããæ©èœæ€åºã®äŸ
JavaScriptã«ããæ©èœæ€åºã®å®çšçãªäŸãããã€ã玹ä»ããŸãã
1. Geolocation APIãµããŒãã®æ€åº
Geolocation APIã¯ããŠã§ããµã€ãããŠãŒã¶ãŒã®äœçœ®æ å ±ã«ã¢ã¯ã»ã¹ããããšãå¯èœã«ããŸãããããããã¹ãŠã®ãã©ãŠã¶ããã®APIããµããŒãããŠããããã§ã¯ãããŸããã以äžã«ãã®ãµããŒããæ€åºããæ¹æ³ã瀺ããŸãã
if ("geolocation" in navigator) {
// Geolocation API is supported
navigator.geolocation.getCurrentPosition(function(position) {
// Do something with the user's location
console.log("Latitude: " + position.coords.latitude);
console.log("Longitude: " + position.coords.longitude);
}, function(error) {
// Handle errors
console.error("Error getting location: " + error.message);
});
} else {
// Geolocation API is not supported
console.log("Geolocation is not supported by this browser.");
// Provide alternative functionality or a fallback
}
è§£èª¬ïŒ ãã®ã³ãŒãã¯ãnavigator
ãªããžã§ã¯ãã«geolocation
ããããã£ãååšãããã©ããããã§ãã¯ããŸããååšããå ŽåããŠãŒã¶ãŒã®äœçœ®æ
å ±ãååŸããããšããŸããããããã£ãååšããªãå Žåã¯ããã©ãŒã«ããã¯ã¡ãã»ãŒãžïŒäŸãã°ããŠãŒã¶ãŒã«æåã§äœçœ®æ
å ±ãå
¥åããããä¿ããããå¥ã®äœçœ®æ
å ±ããŒã¹ã®ãµãŒãã¹ãæäŸãããããïŒãæäŸããŸãã
2. Web Storage APIãµããŒãã®æ€åº
Web Storage APIïŒlocalStorage
ãšsessionStorage
ïŒã¯ããŠã§ããµã€ãããŠãŒã¶ãŒã®ãã©ãŠã¶ã«ããŒã«ã«ã§ããŒã¿ãä¿åããããšãå¯èœã«ããŸãã以äžã«ãã®ãµããŒããæ€åºããæ¹æ³ã瀺ããŸãã
if (typeof(Storage) !== "undefined") {
// Web Storage API is supported
localStorage.setItem("name", "John Doe");
console.log(localStorage.getItem("name"));
} else {
// Web Storage API is not supported
console.log("Web Storage is not supported by this browser.");
// Use cookies or other alternative storage mechanisms
}
è§£èª¬ïŒ ãã®ã³ãŒãã¯ãStorage
ãªããžã§ã¯ããå®çŸ©ãããŠãããã©ããããã§ãã¯ããŸããå®çŸ©ãããŠããå ŽåãWeb Storage APIããµããŒããããŠãããšèŠãªããããŒã¿ã®ä¿åãšååŸãé²ããŸããå®çŸ©ãããŠããªãå Žåã¯ããã©ãŒã«ããã¯ã¡ãã»ãŒãžãæäŸããã¯ãããŒãä»ã®ä»£æ¿ã¹ãã¬ãŒãžã¡ã«ããºã ã䜿çšãã¹ãã§ããããšã瀺ããŸãã
3. `classList` APIã®æ€åº
`classList` APIã¯ãèŠçŽ ã®ã¯ã©ã¹ãæäœããããã®äŸ¿å©ãªæ¹æ³ãæäŸããŸãã以äžã«ãã®ååšãæ€åºããæ¹æ³ã瀺ããŸãã
var element = document.getElementById("myElement");
if (element && element.classList) {
// classList API is supported
element.classList.add("active");
} else {
// classList API is not supported
// Use older methods for class manipulation
element.className += " active"; // Or a more robust polyfill
}
è§£èª¬ïŒ ãã®ã³ãŒãã¯ãŸã`document.getElementById`ã䜿çšããŠèŠçŽ ãååŸããŸããæ¬¡ã«ããã®èŠçŽ ãååšã*ãã€* `classList`ããããã£ãæã£ãŠãããã©ããããã§ãã¯ããŸããäž¡æ¹ãtrueã®å Žåã`classList` APIã䜿çšããŠãactiveãã¯ã©ã¹ã远å ããŸããããã§ãªãå Žåã¯ããã©ãŒã«ããã¯ã䜿çšãããŸããããã¯ãã¯ã©ã¹åã®åçŽãªé£çµããããå æ¬çãªããªãã£ã«ïŒåŸè¿°ïŒãããããŸããã
4. `IntersectionObserver` APIã®æ€åº
`IntersectionObserver` APIã䜿çšãããšãèŠçŽ ããã¥ãŒããŒãã«åºå ¥ãããã¿ã€ãã³ã°ãå¹ççã«ç£èŠã§ããŸããããã¯ãç»åã®é å»¶èªã¿èŸŒã¿ããèŠçŽ ã衚瀺ããããšãã®ã¢ãã¡ãŒã·ã§ã³ã®ããªã¬ãŒã«åœ¹ç«ã¡ãŸãã
if ('IntersectionObserver' in window) {
// IntersectionObserver API is supported
let observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
// Do something when the element is visible
console.log('Element is visible!');
observer.unobserve(entry.target); // Stop observing after the element is visible
}
});
});
let element = document.querySelector('.lazy-load');
if (element) {
observer.observe(element);
}
} else {
// IntersectionObserver API is not supported
// Fallback: Load the content immediately
let element = document.querySelector('.lazy-load');
if (element) {
// Load the content immediately (e.g., set the image source)
element.src = element.dataset.src;
}
}
è§£èª¬ïŒ ãã®ã³ãŒãã¯ã`window`ãªããžã§ã¯ãã«`IntersectionObserver`ãååšãããã©ããããã§ãã¯ããŸããååšããå Žåãæ°ãããªãã¶ãŒããŒãäœæãã`.lazy-load`ã¯ã©ã¹ãæã€ç¹å®ã®èŠçŽ ãç£èŠããŸããèŠçŽ ã衚瀺ããããšãã¡ãã»ãŒãžããã°ã«åºåãããã®èŠçŽ ã®ç£èŠã忢ããŸãã`IntersectionObserver`ããµããŒããããŠããªãå Žåã¯ãèŠçŽ ã®ã³ã³ãã³ããå³åº§ã«èªã¿èŸŒã¿ãŸãã
CSSæ©èœã¯ãšãªïŒ@supportsïŒ
CSSæ©èœã¯ãšãªã¯ã@supports
ã«ãŒã«ã䜿çšããŠãCSSæ©èœã®ãµããŒããæ€åºããæ¹æ³ãæäŸããŸããããã«ããããã©ãŠã¶ã®èœåã«åºã¥ããŠç°ãªãã¹ã¿ã€ã«ãé©çšããããšãã§ããŸããäŸãã°ã
@supports (display: grid) {
/* Styles to apply if grid layout is supported */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
}
@supports not (display: grid) {
/* Styles to apply if grid layout is not supported */
.container {
display: flex;
flex-wrap: wrap;
}
.item {
width: 30%;
margin: 1%;
}
}
è§£èª¬ïŒ ãã®CSSã³ãŒãã¯ããŸããã©ãŠã¶ãdisplay: grid
ããããã£ããµããŒãããŠãããã©ããããã§ãã¯ããŸãããµããŒãããŠããå Žåã¯ãã°ãªããã¬ã€ã¢ãŠããäœæããããã®ã¹ã¿ã€ã«ãé©çšããŸãããµããŒãããŠããªãå Žåã¯ããã©ãŒã«ããã¯ãšããŠãã¬ãã¯ã¹ããã¯ã¹ã¬ã€ã¢ãŠããäœæããããã®ã¹ã¿ã€ã«ãé©çšããŸãã
ã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ vs. ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãïŒè©³çŽ°ãªæ¯èŒ
ã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ãšããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãã©ã¡ããæ§ã ãªãã©ãŠã¶ã§å©çšå¯èœãªäœéšãæäŸããããšãç®æããŠããŸããããã®ã¢ãããŒãã¯å€§ããç°ãªããŸãã
- ã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ïŒ ææ°ã®ãã©ãŠã¶åãã«æ§ç¯ããããšããå§ãããã®åŸãå€ããã©ãŠã¶ã§ãåäœããããã«è©Šã¿ãŸããããã«ã¯ãäºææ§ã®åé¡ã«å¯ŸåŠããããã«ããã¯ãåé¿çã䜿çšããããšããããããŸãã
- ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãïŒ ãã¹ãŠã®äººãå©çšã§ããåºæ¬çã§æ©èœçãªãŠã§ããµã€ãããå§ãããã®åŸãã¢ãã³ãªãã©ãŠã¶ãæã€ãŠãŒã¶ãŒã®äœéšãåäžãããŸãã
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãäžæ žãšãªãæ©èœãšã¢ã¯ã»ã·ããªãã£ãæåããåªå ãããããäžè¬çã«ãããå ç¢ã§æç¶å¯èœãªã¢ãããŒããšèŠãªãããŠããŸããã°ã¬ãŒã¹ãã«ãã°ã©ããŒã·ã§ã³ã¯ãæ°ãããã©ãŠã¶ãæè¡ãç»å Žããã«ã€ããŠç¶æããã®ãããå°é£ã«ãªãå¯èœæ§ããããŸãã
ããªãã£ã«ïŒã®ã£ãããåãã
ããªãã£ã«ïŒãŸãã¯ã·ã ïŒã¯ããã©ãŠã¶ããã€ãã£ãã«ãµããŒãããŠããªãæ©èœãæäŸããã³ãŒãã®äžéšã§ããããªãã£ã«ã䜿çšãããšãæ¬ ããŠããæ©èœã®JavaScriptå®è£ ãæäŸããããšã§ãå€ããã©ãŠã¶ã§ã¢ãã³ãªãŠã§ãæè¡ã䜿çšããããšãã§ããŸãã
ããªãã£ã«ã®ä»çµã¿
ããªãã£ã«ã¯éåžžããã©ãŠã¶ãç¹å®ã®æ©èœããµããŒãããŠãããã©ãããæ€åºããããšã§æ©èœããŸããæ©èœããµããŒããããŠããªãå Žåãããªãã£ã«ã¯ãã®æ©èœã®å®è£ ãJavaScriptã䜿çšããŠæäŸããŸãããã®å®è£ ã¯ãç®çã®æ©èœãå®çŸããããã«ãä»ã®æ¢åã®ãã©ãŠã¶APIãæè¡ã«äŸåããããšããããŸãã
ããªãã£ã«ã®äŸ
- es5-shimïŒ
Array.forEach
ãArray.map
ãªã©ãå€ãã®ECMAScript 5æ©èœã®ããªãã£ã«ãæäŸããŸãã - fetchïŒ HTTPãªã¯ãšã¹ããè¡ãããã«äœ¿çšããã
fetch
APIã®ããªãã£ã«ãæäŸããŸãã - IntersectionObserver polyfillïŒ `IntersectionObserver` APIã®ããªãã£ã«ãæäŸããŸãã
ããªãã£ã«ã广çã«äœ¿çšãã
ããªãã£ã«ã¯åœ¹ç«ã¡ãŸãããè³¢æã«äœ¿çšããããšãéèŠã§ããããªãã£ã«ã䜿ãããããšãããŒãžã®èªã¿èŸŒã¿æéãé·ããªããããã©ãŒãã³ã¹ã«æªåœ±é¿ãäžããå¯èœæ§ããããŸããWebpackãParcelãªã©ã®ãã«ãããŒã«ã䜿çšããŠãç¹å®ã®ãã©ãŠã¶ã«å¿ èŠãªããªãã£ã«ã®ã¿ãèªåçã«å«ããããšãæ€èšããŠãã ããã
ãŸããPolyfill.ioã®ãããªãµãŒãã¹ã®äœ¿çšãæ€èšããŠãã ãããããã¯ãŠãŒã¶ãŒã®ãã©ãŠã¶ã«åºã¥ããŠããªãã£ã«ãé ä¿¡ããŸããããã«ããããŠãŒã¶ãŒã¯å¿ èŠãªã³ãŒãã®ã¿ãããŠã³ããŒãããããšãä¿èšŒãããŸãã
JavaScriptããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®ãã¹ããã©ã¯ãã£ã¹
JavaScriptããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ããå®è£ ããããã®ãã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãã
- äžæ žãšãªãã³ã³ãã³ããšæ©èœãåªå ããïŒ ãã©ãŠã¶ãããã€ã¹ã«é¢ãããããã¹ãŠã®äººãå©çšã§ããåºæ¬çã§æ©èœçãªãŠã§ããµã€ããæ§ç¯ããããšããå§ããŸãã
- æ©èœæ€åºã䜿çšããïŒ æ©èœæ€åºã䜿çšããŠããã©ãŠã¶ã®èœåã«åºã¥ããŠéžæçã«æ©èœåŒ·åãé©çšããŸãããã©ãŠã¶ã¹ãããã£ã³ã°ã¯é¿ããŠãã ããã
- ãã©ãŒã«ããã¯ãæäŸããïŒ æ©èœããµããŒããããŠããªãå Žåã¯ãé¡äŒŒãŸãã¯ä»£æ¿ã®äœéšãæäŸãããã©ãŒã«ããã¯ãçšæããŸãã
- ããªãã£ã«ãè³¢ã䜿çšããïŒ ã¢ãã³ãªãã©ãŠã¶ãšå€ããã©ãŠã¶ã®éã®ã®ã£ãããåããããã«ããªãã£ã«ã䜿çšããŸãããããã©ãŒãã³ã¹ã®åé¡ãé¿ããããã«è³¢æã«äœ¿çšããŠãã ããã
- 培åºçã«ãã¹ãããïŒ æ§ã ãªãã©ãŠã¶ãããã€ã¹ã§ãŠã§ããµã€ãããã¹ãããæåŸ éãã«åäœããããšã確èªããŸããBrowserStackãSauce Labsã®ãããªããŒã«ãã¯ãã¹ãã©ãŠã¶ãã¹ãã«åœ¹ç«ã¡ãŸãã
- ã¢ã¯ã»ã·ããªãã£ãèæ ®ããïŒ ãã©ãŠã¶ãããã€ã¹ã«é¢ããããé害ãæã€ãŠãŒã¶ãŒããŠã§ããµã€ãã«ã¢ã¯ã»ã¹ã§ããããã«ããŸããã»ãã³ãã£ãã¯ãªHTMLã䜿çšããç»åã«ä»£æ¿ããã¹ããæäŸããWCAGã¬ã€ãã©ã€ã³ã«åŸããŸãã
- ããã©ãŒãã³ã¹ãæé©åããïŒ ç¹ã«äœéãããã¯ãŒã¯ãäœæ§èœããã€ã¹åãã«ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãæé©åããŸããHTTPãªã¯ãšã¹ããæå°éã«æããç»åãå§çž®ãããã£ãã·ã¥ã䜿çšããŸãã
- ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã䜿çšããïŒ CDNã¯ããŠã§ããµã€ãã®ã¢ã»ãããäžçäžã®ãµãŒããŒã«é ä¿¡ããããšã§ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãåäžãããã®ã«åœ¹ç«ã¡ãŸããããã«ãããç°ãªãå°ççãªå Žæã«ãããŠãŒã¶ãŒã®ã¬ã€ãã³ã·ãåæžããèªã¿èŸŒã¿æéãæ¹åã§ããŸãã
- ç£èŠãšåæïŒ åæããŒã«ã䜿çšããŠãŠã§ããµã€ãã®äœ¿çšç¶æ³ã远跡ããæ¹åã®äœå°ãããé åãç¹å®ããŸããããŒãžã®èªã¿èŸŒã¿æéããšã©ãŒçãªã©ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãç£èŠããŸãã
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®æªæ¥
ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ã仿¥ã®å€æ§ãªããžã¿ã«ç°å¢ã«ãããŠãäŸç¶ãšããŠäžå¯æ¬ ãªãŠã§ãéçºæŠç¥ã§ãããŠã§ãæè¡ãé²åãç¶ãããŠãŒã¶ãŒããŸããŸã倿§ãªããã€ã¹ããã©ãŠã¶ãããŠã§ãã«ã¢ã¯ã»ã¹ããããã«ãªãã«ã€ããŠãããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®ååã¯ããã«éèŠã«ãªãã§ããããæ©èœæ€åºãåãå ¥ããé©åãªãã©ãŒã«ããã¯ãæäŸããããã©ãŒãã³ã¹ãæé©åããããšããäžçäžã®ãŠãŒã¶ãŒã«ã€ã³ã¯ã«ãŒã·ãã§ã¢ã¯ã»ã·ãã«ãªãŠã§ãäœéšãæäŸããéµãšãªããŸãã
çµè«
ãŠã§ããã©ãããã©ãŒã ã®æ©èœæ€åºãšJavaScriptã«ããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã¯ãã°ããŒãã«ãªå©çšè ã®ããã«å ç¢ã§ã¢ã¯ã»ã·ãã«ããã€é«æ§èœãªãŠã§ããµã€ããæ§ç¯ããããã®å¿ é æè¡ã§ããäžæ žãšãªãã³ã³ãã³ããšæ©èœãåªå ããæ©èœæ€åºã䜿çšããŠéžæçã«æ©èœåŒ·åãé©çšãããµããŒããããŠããªãæ©èœã«å¯ŸããŠã¯é©åãªãã©ãŒã«ããã¯ãæäŸããããšã§ããã©ãŠã¶ãããã€ã¹ã«é¢ãããããã¹ãŠã®äººãå¿«é©ã«å©çšã§ãããŠã§ããµã€ããä¿èšŒããããšãã§ããŸãããããã®ååãåãå ¥ããããšã¯ããã¹ãŠã®äººã«ãšã£ãŠããã€ã³ã¯ã«ãŒã·ãã§ã¢ã¯ã»ã·ãã«ãªãŠã§ããåµé ããå©ããšãªãã§ãããã