ã¢ãã€ã«ããã€ã¹ã¯ãã倧ããªããã·ã³ã®åé¡ãç¶æ¿ããŠããŸããhttpãªã¯ãšã¹ãã®æ°ããJavaScriptã®ããã©ãŒãã³ã¹ãŸã§ã
ã¢ãã€ã«æ©èœ
ãã±ããã«åãŸãããšãå€ããçŽå€±ãããããšããäºå®ã«å ããŠãã¢ãã€ã«ããã€ã¹ãšãã¹ã¯ãããã«ã¯ããã€ãã®éèŠãªéãããããŸãã
- äœç»é¢è§£å床;
- é ãæ¥ç¶;
- å¶éããããã£ãã·ã¥ãµã€ãºã
- å€ãã®ç°ãªãããã€ã¹ãšãã©ãŒã ãã¡ã¯ã¿ãŒã
- äœããã»ããµé»åã
- åºç¯ãªHTML5ãµããŒã
- æ¯èŒçæ°ãããã©ãŠã¶ãŒïŒãã®äžçã®IE6ã«ã€ããŠã¯ç¥ããŸããïŒã
äžè¬çãªæšå¥šäºé
ãå€§èŠæš¡ãµã€ããã®ããã©ãŒãã³ã¹ã®åé¡ã®ã»ãšãã©ã¯ã¢ãã€ã«ãµã€ãã«åºæã®ãã®ã§ãããããäžèšã®ææ³ã®å€ãã¯ãã¹ã¯ãããã®æé©åã«ç±æ¥ããŠããŸãã
- gzipã䜿çšããŠããã¹ãããŒã¿ãå§çž®ããŸãã
- HTMLããã¥ã¡ã³ãã®ããããŒã«CSSãé 眮ããããŒãžã®äžéšã«JavaScriptãé 眮ããŸãã
- ãµã€ãå šäœã§äœ¿çšãããJavaScriptãã¡ã€ã«ãšCSSãã¡ã€ã«ãçµã¿åãããŸãã ããã«ãããã¢ãã€ã«ãµã€ãã«ãšã£ãŠéåžžã«éèŠãªHTTPãªã¯ãšã¹ãã®æ°ãæžããŸãã
- CSSããã³JavaScriptã³ãŒãã®æå°åãšé£èªåã䜿çšããŸãã
- ãµã€ãã§1åã ã䜿çšãããJSãšCSSãããã³å°ããªJSãšCSSïŒæå€§5 kBïŒã¯ãããŒãžã«çŽæ¥å«ããããšããå§ãããŸãã å¥ã®ãã¡ã€ã«ã«å ¥ããªãã§ãã ããã
- å€ãã®ã¢ãã€ã«ãã©ãŠã¶ïŒAndroidãOpera Mobileãªã©ïŒã§ã¯ãæ¥ç¶æ°ã«4ã6以äžã®äžè¬çãªå¶éããããŸãã ãã®ãããªãã©ãŠã¶ã«ãã¡ã€ã³ã·ã£ãŒãã£ã³ã°ã䜿çšããŠãããµã€ãã®éåºŠã«æªåœ±é¿ãäžããã ãã§ãã
- åæã«ãAndroidãã©ãŠã¶ãŒã¯HTTPãã€ãã©ã€ã³ããµããŒãããŸããããã«ããã1ã€ã®æ¥ç¶ã§3ã€ã®ãªã¯ãšã¹ãããµãŒããŒã«äžåºŠã«éä¿¡ã§ããŸãã ãµãŒããŒãHTTPãã€ãã©ã€ã³ããµããŒãããŠããããšãå¿ããªãã§ãã ããã
- ïŒç®ã«èŠããå質ã®äœäžãªãã«ïŒãã¡ã€ã«ãæ£ããå§çž®ããããšãéåžžã«éèŠã§ããããšãã°ãSmush.itã䜿çšããŸã ã
- ãªãã€ã¬ã¯ããé¿ããããå°ãªããšããã£ãã·ã¥ããŸãã
- iOSã®å ŽåãQuicktime Reference Moviesã䜿çšãããšãã€ã³ã¿ãŒãããæ¥ç¶ã®æ©èœã«åºã¥ããŠã蚪åè ã«ããŸããŸãªãããªãã¡ã€ã«ããäžãããããšãã§ããŸãã
- å¯èœãªéãWebSocketsãå©çšããŠãã ããïŒå®å šãªãµããŒãã¯ãiOS Safari 4.2-4.3ã§ã®ã¿å©çšå¯èœã§ãOpera Mobile 11.1ã§ã¯éšåçã«ãµããŒããããŸãïŒã
HTMLããã³CSSã®æé©å
ã¢ãã€ã«ãã©ãŠã¶ãŒã§ã®HTML5ããã³CSS3ã®åºç¯ãªãµããŒãã«ãããWebãµã€ãã®æé©åã«æãè¿ä»£çãªææ³ã䜿çšã§ããŸãã
- HTMLã³ãŒãã¯éåžžã«åçŽã§ãªããã°ãªããŸããã HTML5ã»ãã³ãã£ãã¯èŠçŽ ã䜿çšãã<ïŒDOCTYPE html>ãæå®ãããªãã·ã§ã³ã®xmlns屿§ãé€å€ããŸãã ãŸããdivãšã¯ã©ã¹ã®æ°ãæžãããŠãã ããã
- å ¥åã®äœ¿çšé »åºŠãæžããã䜿çšããå Žåã¯HTML5圢åŒã§å ¥åããŠãã ããã
- èæ¯ç»åã®ä»£ããã«CSSã°ã©ããŒã·ã§ã³ã䜿çšããŸã-ããã«ããããµãŒããŒãžã®åŒã³åºãåæ°ãå€§å¹ ã«åæžãããŸãã
- CSSã¯ä»ã®å€ãã®äŸ¿å©ãªæ©èœãæäŸããŸãããã®äœ¿çšã¯ç»åïŒåœ±ãäžžãå¢çç·ãsvgããã³ãã£ã³ãã¹ããŒãžã«åã蟌ãŸããè€æ°ã®èæ¯ïŒããã广çã§ãã
ç»åã®æé©å
ãµãŒããŒãžã®äžèŠãªåŒã³åºããšã®æŠãã«å ããŠãããŠã³ããŒããããã¡ã€ã«ã®ãµã€ãºãæå°éã«æããããšãéåžžã«éèŠã§ãã ãã®èгç¹ã§ã¯ãç»åã®æé©åãæãéèŠãªèŠçŽ ã§ãã
- CSSã¹ãã©ã€ãã䜿çšããŠãããŽãšã¢ã€ã³ã³ãæé©åããŸãã
- htmlããã³cssã§ã¯ãbase64ã§ç»åããšã³ã³ãŒãããŸã-éåžžã«å¹ççãªæ¹æ³ã§ãã ã»ãšãã©ã®ã¢ãã€ã«ãã©ãŠã¶ã§ãµããŒããããŠããããšã³ã³ãŒãã¯ãµãŒããŒåŽã§è¡ãããŸãã PHP-base64_encodeïŒïŒã«å ããŠãCanvas-toDataURLïŒïŒã®HTML5ãã¯ãããžãŒã䜿çšã§ããŸãã
- åçã§ã¯ãªãUnicodeã§çµµæåã¢ã€ã³ã³ããšã³ã³ãŒãããŸãïŒiOS 2.2以éãããã³å€ãã®æ¥æ¬ã®æºåž¯é»è©±ã§ãµããŒããããŠããŸãïŒã
ã¢ãã€ã«ããã€ã¹ã§ã¯ãç»é¢ã®è§£å床ã¯ãã¹ã¯ãããç»é¢ãããå€§å¹ ã«äœããªããŸãã CSSã䜿çšãããšããŠãŒã¶ãŒã®ç»é¢ã®çŸåšã®è§£å床ã倿ããããã«å¿ããŠãããé©åãªè§£å床ãæã€ç»åã®ããŒãžã§ã³ããŠãŒã¶ãŒã«æž¡ãããšãã§ããŸãã
/* Screens bigger than 480px */ @media only screen and (min-device-width: 481px) { #header { background-image: url(header-full.png); } }
äžèšã®ã³ãŒãã¯ããŠãŒã¶ãŒã®ç»é¢ã®å¹ ã480pxãã倧ãããšå€æãããã©ãŠã¶ã«header-full.pngç»åããã«è§£å床ã§ããŠã³ããŒãããããã«æç€ºããŸã
ããããç»é¢ã®å¹ ã480pxæªæºã§ãããšå€æããæ¬¡ã®ã³ãŒãã¯ããã©ãŠã¶ã«å°ããªç»é¢ã«é©ããç»åãæäŸããŸãã
/* Screens smaller than 480px */ @media only screen and (max-device-width: 480px) { #header { background-image: url(header-small.png); } }
ãã®ãµã€ããšãã©ãŠã¶éã®çè§£ã®çµæãã¢ãã€ã«ããã€ã¹ã«ããŠã³ããŒããããããŒã¿ã®ãµã€ãºã¯å€§å¹ ã«æžå°ããŸãã
ãã ãããŸããŠãŒã¶ãŒã®å©äŸ¿æ§ã«æ³šæããŠãã ããã åãååïŒã¢ãã€ã«ããã€ã¹ãšãã¹ã¯ãããããã€ã¹çšã®å¥åã®ã³ã³ãã³ãïŒã䜿çšããŠãé«è§£å床ã®ç»é¢ãæã€ãŠãŒã¶ãŒããµã€ããæ¥œãããããã«ããåæã«ä»ã®èšªåè ã«å®³ãäžããªãããã«ããããšãã§ããŸãã
ããšãã°ãiPhone 4ãŠãŒã¶ãŒã¯ãé»è©±ç»é¢ã«é«DPIç»åïŒäŸïŒ300ïŒã衚瀺ããããšã«ãã§ã«æ £ããŠããŸãã ãŸããRetinaã¹ã¯ãªãŒã³ã§ãµã€ãã®èŠæ ããè¯ããããå Žåã¯ãå¥ã®é«è§£å床ç»åã»ãããçšæãã CSS Media Queriesã䜿çšããŠã¢ããããŒãããå¿ èŠããããŸãã
/* High dpi */ @media only screen and (min-resolution: 300dpi), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5) { #header { background-image: url(header-300dpi.png); } } /* Low dpi */ @media only screen and (max-resolution: 299dpi), only screen and (-webkit-max-device-pixel-ratio: 1.5), only screen and (max--moz-device-pixel-ratio: 1.5) { #header { background-image: url(header-72dpi.png); } }
ããã¯ããŠãŒã¶ãŒã®å©äŸ¿æ§ãåªå ããŠããã©ãŒãã³ã¹ãç ç²ã«ãã䟡å€ãããå Žåã«ãŸãã«åœãŠã¯ãŸããŸãã
æ¥ç¶éåºŠã®æé©å
Android 2.2 Froyo以éãéçºè ã¯ããã€ã¹ããçŸåšã®çš®é¡ã®ã€ã³ã¿ãŒãããæ¥ç¶ã«é¢ããããŒã¿ãåä¿¡ããæ©äŒããããŸãã ããã¯ãnavigator.connectionãªããžã§ã¯ãã䜿çšããŠå®è£ ãããŸãã
次ã«ã3Gãããã¯ââãŒã¯ã§å®è¡ãããŠããããã€ã¹ããåä¿¡ããããŒã¿ã®äŸã瀺ããŸãã
navigator = {
connection: {
"type": "4",
"UNKNOWN": "0",
"ETHERNET": "1",
"WIFI": "2",
"CELL_2G": "3",
"CELL_3G": "4"
}
};
æ¥ç¶ã¿ã€ãã¯ã4ãã§ãCELL_3Gã«å¯Ÿå¿ããŠããŸãã åçŽãªã¹ã¯ãªããã䜿çšããŠãæ¥ç¶ã®ã¿ã€ããæ±ºå®ãããã®æ å ±ãHTMLèŠçŽ ã®CSSã¯ã©ã¹ãšããŠæž¡ãããšãã§ããŸãã
// Initialize variables var connection, connectionSpeed, htmlNode, htmlClass; // Create a custom object fallback if navigator.connection isn't available connection = navigator.connection || {'type':'0'}; // Set connectionSpeed switch(connection.type) { case connection.CELL_3G: // 3G connectionSpeed = 'mediumbandwidth'; break; case connection.CELL_2G: // 2G connectionSpeed = 'lowbandwidth'; break; default: // WIFI, ETHERNET, UNKNOWN connectionSpeed = 'highbandwidth'; } // set the connection speed on the html element, ie <html class="lowbandwidth"> htmlNode = document.body.parentNode; htmlClass = htmlNode.getAttribute('class') || ''; htmlNode.setAttribute('class', htmlClass + ' ' + connectionSpeed);
ãã®çµæãäœéæ¥ç¶ãå®çŸ©ãããšãã«ãCSSã䜿çšããŠæé©åãããç»åã蚪åè ã®ãã©ãŠã¶ã«æž¡ããŸãã
.highbandwidth .logo { background-image:url('logo-high.jpg'); } .mediumbandwidth .logo { background-image:url('logo-medium.jpg'); } .lowbandwidth .logo { background-image:url('logo-low.jpg'); }
ããã§ãããŠãŒã¶ãŒã®éžæã奪ããªãã§ãã ããïŒç¬è£è ã«ã¯ãªããŸããïŒã ãããã£ãŠãäžè¬çãªéžæã«å ããŠïŒ
-
desktop | mobile
ãµã€ãããŒãžã§ã³desktop | mobile
desktop | mobile
ãŸããéžæè¢ãäžããŸãïŒ
- æ¥ç¶é床ïŒé«é
High | Medium | Low
High | Medium | Low
åçŽãªã«ãŒã«ã䜿çšããŸã-ããã¯ã»ã«ã衚瀺ãããŠããªãå ŽåãããŠã³ããŒãããå¿ èŠã¯ãããŸãããããåæã«ããŠãŒã¶ãŒã®ããã«æ±ºå®ããã¹ãã§ã¯ãªããæšå¥šããããšãã§ããŸããã
ãã£ãã·ã³ã°
ãã¹ã¯ãããã®å Žåãã»ãšãã©ã®å Žåããœãªã¥ãŒã·ã§ã³ãå€éšãã¡ã€ã«ãåªå ããã®ã§ããã°ãã¢ãã€ã«ã®å Žåã¯ããããå察ã§ãã ãã£ãã·ã¥ã®ãµã€ãºãå°ãããããå€§èŠæš¡ã§é·æçãªç¯çŽã«ã€ããŠè©±ãå¿ èŠã¯ãããŸããã ããŒãžã®åèªã¿èŸŒã¿é床ãæé©åããããã®ãã³ããããã€ããããŸãã
- ãã£ãã·ã¥ajax;
- é ãå°æ¥ã®ãã¡ã€ã«ã®é¢é£æ§ã®ããããŒãèšå®ããŸãïŒå°æ¥ã®ãã£ãã·ã¥æå¹æéããããŒïŒã
- Cookieãé¿ãã代ããã«localStorageã䜿çšããŸãïŒCookieã¯http-requestsã«ãã£ãŠéä¿¡ããããããéä¿¡ãããããŒã¿ã®ãµã€ãºãå€§å¹ ã«å¢å ããŸãïŒã LocalStorageãšSessionStorageã¯ãCookieã«ä»£ãããã广çãªHTML5ãã¯ãããžãŒã§ãã å€éšCSSãšJavaScriptãããã«ä¿åã§ããŸãã
LocalStorageãšSessionStorageã®éèŠãªå¶éã¯ãStringåã®ããŒã¿ã®ã¿ãä¿åã§ããããšã§ãã ãããã£ãŠããŸãããŒã¿ãæåå圢åŒã«å€æãããã®åŸ
JSON.stringify()
ããã³
JSON.parse()
ã䜿çšããŠå ã®ããŒã¿ã«åŸ©å ããå¿ èŠããããŸãã
var user = { firstName: 'Joe', lastName: 'Schmoe', age: 40 } // Store the object localStorage.userInfo = JSON.stringify(user); // Retrieve the object var user = JSON.parse(localStorage.userInfo);
ãããã®ãªããžã§ã¯ãã«æ ŒçŽã§ããããŒã¿ã®ãµã€ãºã¯ãã©ãŠã¶ãŒããšã«ç°ãªããŸãããã»ãšãã©ã®å Žåã¯5 Mbã§ååã§ãã
è峿·±ãç¹-AndroidãšBlackBerry OSã®ããã€ã¹ã¯ãããã€ã¹ã®ãªã³/ãªããåãæ¿ããåŸã§ããã£ãã·ã¥ãä¿åã§ããŸããåæã«ãiPhoneã¯ãããèªæ ¢ã§ããŸããã
ã¹ããŒããã©ã³ | iPhone 4 | ã®ã£ã©ã¯ã·ãŒS | ãã¯ãµã¹ | ãã©ãã¯ããªãŒããŒã |
---|---|---|---|---|
OS / Ver | iOS / 4.3 | Android 2.2 | Android 2.3 | ãã©ãã¯ããªãŒ6 |
æ°žä¹ * | 0 | 4 | 4 | 25 |
ã¡ã¢ãªå ** | 100 | 4 | 4 | 25 |
é å€ | iPad 1 | iPad 2 | XOOM |
---|---|---|---|
OS / Ver | iOS / 4.3 | iOS / 4.3 | Android 3.0 |
æ°žä¹ * | 0 | 0 | 20 |
ã¡ã¢ãªå ** | 20 | 50 | 20 |
**ã¡ã¢ãªå -ããã¯RAMã«ä¿åããããã£ãã·ã¥ã§ãïŒããšãã°ãã¢ããªã±ãŒã·ã§ã³ãåãæ¿ãããšãïŒã Blazeããã°ã§ã¢ãã€ã«ããã€ã¹ã®ãã£ãã·ã¥ã®è©³çްãèªãã§ãã ããã
Javascriptã®æé©å
ã¢ãã€ã«ããã€ã¹ã®ããã»ããµèœåãäžååã§ãããããé¢é£ããè² è·ãåæžããããã®åªåãåã³å¿ èŠã«ãªããŸãã ãããã£ãŠãGoogleã®èª¿æ»ã«ãããšãJavaScriptã³ãŒãã®1 KBããšã®è§£æã¯çŽ1ããªç§ã§ãã
- JavaScriptã®ã¿ã€ã ã¢ãŠãã¢ãã¡ãŒã·ã§ã³ãé¿ããã«ã¯ã代ããã«CSS3ãã©ã³ãžã·ã§ã³ã䜿çšããããšããå§ãããŸãïŒãã ãããã¹ãŠã®ãã©ãŠã¶ããã®ãã¯ãããžãŒãå®å šã«ãµããŒãããŠããããã§ã¯ãªãããããã®å Žåã¯ãäºåã®ãæ§åŒã®ãªãã·ã§ã³ãå¿ èŠã§ãïŒ
- ã¿ããããã€ã¹ã§ã¯ãã¯ãªãã¯ãã³ãã©ãŒã¯300ããªç§ãã500ããªç§ã®é å»¶ã«ã€ãªãããŸããããã¯éåžžã«é·ãããããã®ãããªããã€ã¹ã®å Žåã¯ãããã€ãã£ãããã³ãã©ãŒã䜿çšããããšããå§ãããŸãã
- å šäœã§ã¯ãªããå€§èŠæš¡ãªãã¬ãŒã ã¯ãŒã¯ïŒjQueryãªã©ïŒã®å¿ èŠãªéšåã®ã¿ã䜿çšããŸãã å°ããªãã¬ãŒã ã¯ãŒã¯ïŒXUIãzepto.jsãmicrojsïŒã䜿çšããã®ãããã«æé©ã§ãã
- ãã©ãŒã å ã®javascriptãæå°éã«æããããåªããŠãã ãããå¯èœãªå Žåã¯HTML5ã䜿çšããããšããå§ãããŸãã
- HTML5ã®ãã1ã€ã®æçšãªææã¯ãã¯ã©ã€ã¢ã³ãåŽã«ä¿åãããŠããããŒã¿ããŒã¹ã®äœ¿çšã§ãã æ¢åã®ãœãªã¥ãŒã·ã§ã³ã®äžã§ãindexedDBãæã人æ°ãç²åŸããŸããïŒãã®ãã¯ãããžãã¢ãã€ã«ãã©ãŠã¶ã§ããã«ãµããŒããããããšãé¡ã£ãŠããŸãïŒã
- ajaxïŒonhashchange-å±¥æŽç®¡ççšïŒã䜿çšããŠã倿Žãå¿ èŠãªãã®ã®ã¿ãèŠæ±ããŸãã
- JSãã¡ã€ã³ã³ã³ãã³ããšéåæã«ããŠã³ããŒãããŸãã
- éå§é å»¶ãæžãããŸãã ããšãã°ãGmail MobileããŒã ã¯ã ã¢ãžã¥ãŒã«ããé å»¶ãããŒãããè峿·±ãæ¹æ³ãææ¡ããŠããŸã ã
ãããã«
ã¢ãã€ã«ãµã€ãã®é床ãæé©åããããšã®éèŠæ§ã¯ãã€ã³ã¿ãŒãããäžã®æ¥åžžçãªã¿ã¹ã¯ã解決ããããã«ãŠãŒã¶ãŒãã¹ããŒããã©ã³ããŸããŸã䜿çšããããã«ãªã£ãŠããããŸããŸãéèŠã«ãªã£ãŠããŸãã
è峿·±ãã®ã¯ãã»ãšãã©ã®äººããã¹ããŒããã©ã³ã䜿çšãããšãã®ãµã€ãã®é ãæäœã«äžå¯å®¹ã§ããããšã§ãã å€ãã®å Žåãããã¯ç¹å®ã®ã¿ã¹ã¯ãæ°ç§ä»¥å ã«è§£æ±ºããå¿ èŠãããããã§ãïŒããšãã°ãã¬ã¹ãã©ã³ã®äœæãæå®ãããªã©ïŒã
ç§ãã¡ã®ä»äºã¯ãæ©èœæ§ãšäœ¿ããããã®æå€±ãæå°éã«æããªãããWebãµã€ãã®èªã¿èŸŒã¿é床ãæå°éã«æããããšã§ãã