ãã®èšäºã§ã¯ãWebã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ã®é«åºŠãªãã£ãã·ã³ã°ãæäŸããã€ã³ã¿ãŒãããã«æ¥ç¶ããã«ä»¥åã«ããŠã³ããŒããããµã€ãã衚瀺ã§ããäžé£ã®æ©èœã§ããApplication Cache APIã«ã€ããŠèª¬æããŸãã Application Cacheã®å®çšãšåé¡ã«ç¹ã«æ³šæãæããŸããã
ããã«ãã®èšäºã§ã¯ãããã£ãã·ã¥ããšããèšèãšãã®æŽŸçèªã¯ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãæå³ããããã䜿çšããŸãã æšæºãã©ãŠã¶ãã£ãã·ã¥ã¯ãæšæºãã£ãã·ã¥ããšåŒã°ããŸãã
äžè¬çãªã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã¯ãŒã¯ãããŒ
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®åäœã¡ã«ããºã ã¯äžèŠã·ã³ãã«ã§ãã ãŠãŒã¶ãŒãæåã«ãµã€ãã䜿çšãããšããããŒãžã¯ãã©ãŠã¶ãŒã®ãã£ãã·ã¥ã«ä¿åãããŸãã ãã®åŸããã®åŸã®èšªåäžãããã³ã€ã³ã¿ãŒãããæ¥ç¶ã倱ãããå Žåãäºåã«ä¿åãããããŒã¿ãç¹å¥ãªãã¹ãã¬ãŒãžãã§äœ¿çšãããŸãã ãµã€ãã®ãã£ãã·ã¥ã¯ããããã§ã¹ããšåŒã°ããç¹å¥ãªãã¡ã€ã«ã䜿çšããŠå¶åŸ¡ãããŸãã äžéšã®èšäºã§ã¯ã.manifestã®ä»£ããã«.apppcacheã䜿çšããŠããŸãã ãã®èšäºã§ã¯.manifestã䜿çšããŸãã ç¬èªã®ååã䜿çšã§ããŸããã
ä¿ç®¡
ãã¹ãã¬ãŒãžãã¯ããã©ãŠã¶ã§ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®ä¿åå Žæã瀺ãããã«äœ¿çšãããæ¡ä»¶ä»ãã®ååã§ãã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãšæšæºãã©ãŠã¶ãã£ãã·ã¥ã®åäœã¡ã«ããºã ã¯ç°ãªããããåå¥ã«é 眮ããå¿ èŠããããŸãã 2çš®é¡ã®ãã£ãã·ã¥ã®éãã¯æ¬¡ã®ãšããã§ãã
- æšæºãã£ãã·ã¥ã«é 眮ãããããŒã¿ã¯ãæºæ¯ã«ãªã£ããšãããŸãã¯ãã¡ã€ã«ããããŒã§æå®ãããã¢ã¯ã·ã§ã³ãããŒãæéåãã«ãªã£ããšãã«ããŠãŒã¶ãŒãŸãã¯ãµãŒããŒããã®ã³ãã³ããªãã§èªåçã«åé€ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã«ä¿åãããããŒã¿ã¯ããŠãŒã¶ãŒãŸãã¯ãµãŒããŒã®ã³ãã³ãã§ã®ã¿åé€ã§ããŸãã
- ããŒãžã®è¡šç€ºäžã«ããŒãããããã¡ã€ã«ã®ã¿ãæšæºãã£ãã·ã¥ã«å ¥ããŸãã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã§ã¯ããããã§ã¹ãã¹ããŒãã¡ã³ãã«åŸã£ãŠãµãŒããŒããããŠã³ããŒããããã¡ã€ã«ãé 眮ã§ããŸãã
ãããã®éãã¯ããã£ãã·ã³ã°ã¡ã«ããºã ã«å€§ããªåœ±é¿ãäžããŸããããã«ã€ããŠã¯ãèšäºã®æåŸã§è©³ãã説æããŸãã
.manifestãã¡ã€ã«ãå«ãã
æåã«ãã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ããæå¹ã«ãããå¿ èŠããããŸãã ããã¯ãhtmlã¿ã°ã®manifestå±æ§ã䜿çšããŠããã©ãŠã¶ã§.manifestãã¡ã€ã«ãæãããšã§å®è¡ãããŸãã
<!DOCTYPE html> <html manifest="cache.manifest">
ããã«ã¯2ã€ã®æ©èœããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã¯ããã©ãŠã¶ãããŒãžãHTML5ããã¥ã¡ã³ããšããŠåŠçããå Žåã«ã®ã¿æ©èœããŸãã ãããã£ãŠãDOCTYPEã瀺ãããšãæãŸããã§ãã æå®ãããDOCTYPEããªããšãå€ãããŒãžã§ã³ã®ãã©ãŠã¶ãŒã§åé¡ãçºçããå ŽåããããŸãã
- ãã¡ã€ã«åã¯ä»»æã§ãã
ãã®åŸããŠãŒã¶ãŒã«æåã®.manifestãã¡ã€ã«ãæäŸããã ãã§ååã§ãããããã§ã¯2ã€ã®éèŠãªãã€ã³ããåŸ ã£ãŠããŸãã
- .manifestãã¡ã€ã«ã®MIMEã¿ã€ããå®çŸ©ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ããµãŒããŒäžã®.htaccessãã¡ã€ã«ã«æ°ãããã¡ã€ã«ã¿ã€ããå®çŸ©ããè¡ãè¿œå ããŸãã
AddType text/cache-manifest .manifest
- Mozilla FireFoxãã©ãŠã¶ãŒã«ã¯ããããã§ã¹ããã¡ã€ã«ã®ã³ã³ãã³ãã®æŽæ°ã«åé¡ããããããå
·äœçã«ã¯.htaccessã«æ§é ãè¿œå ããå¿
èŠããããŸãã
<IfModule mod_expires.c> ExpiresActive On ExpiresByType text/cache-manifest "access plus 0 seconds" </IfModule>
ãããã®æäœãè¡ã£ããã.manifestãã¡ã€ã«ã®å 容ãåŠçã§ããŸãã
.Manifestãã¡ã€ã«
ãã®ãããªãã¡ã€ã«ã®äŸã次ã«ç€ºããŸãã
CACHE MANIFEST # 1 images/logo.png CACHE: css/default.css NETWORK: index.php FALLBACK: / /offline.html
æåã®è¡ã«ã¯ãããã¹ãCACHE MANIFESTãå«ãŸããŠããŸã-ããã¯ããã®ãã¡ã€ã«ããããã§ã¹ããã¡ã€ã«ã§ããããšãæå³ããŸãã 圌女ãå¿ èŠã§ãã
ãã¡ã€ã«å ã®ã³ã¡ã³ãã¯ãã³ãèšå·ïŒã§ç€ºãããŸãã
空è¡ãŸãã¯ã¹ããŒã¹ã®ããè¡ã¯ç¡èŠãããè«ççãªåé¢ã«ã®ã¿äœ¿çšãããŸãã
ãã®äŸã§ã¯ãã³ã¡ã³ãã®åŸã«ããããããæ瀺çãªãšã³ããªãïŒimages / logo.pngïŒãç¶ããŸã-CACHEã»ã¯ã·ã§ã³ã«é¡äŒŒããŠããŸãã ãã®ã»ã¯ã·ã§ã³ãšçµã¿åãããŠäœ¿çšââãããã眮ãæãããããããšãã§ããŸãã
åã«ãŒã«ïŒãªãœãŒã¹ïŒã¯å¥ã ã®è¡ã«èšè¿°ããå¿ èŠããããŸãã
3ã€ã®ã»ã¯ã·ã§ã³ãç¶ããŸãã ã»ã¯ã·ã§ã³åãšããã¹ãCACHE MANIFESTã¯å€§æåã§ãªããã°ãªããŸããã åã»ã¯ã·ã§ã³ã¯ãã®æ©èœãå®è¡ããŸãã ã»ã¯ã·ã§ã³ã®é åºã¯éèŠã§ã¯ãããŸããã å°ãªããšã1ã€ã®ã»ã¯ã·ã§ã³ãå¿ èŠã§ãã ã»ã¯ã·ã§ã³ã¯ç©ºãããããŸããã
åã»ã¯ã·ã§ã³ãèŠãŠã¿ãŸãããã
CACHEã»ã¯ã·ã§ã³
ãã®ã»ã¯ã·ã§ã³ã¯ããã©ã«ãã®ã»ã¯ã·ã§ã³ã§ãã .manifestãã¡ã€ã«ã«ããããŒããªãå ŽåïŒãæ瀺çãªãšã³ããªãïŒããã®ãã¡ã€ã«ã®å 容ã¯CACHEã»ã¯ã·ã§ã³ã®å 容ãšããŠæ±ãããŸãã ãã®ã»ã¯ã·ã§ã³å ã«ã¯ããã£ãã·ã¥ããããªãœãŒã¹ã®ãã¹ãŸãã¯URIããããŸãã 次ã®æ©èœãå©çšå¯èœã§ãã
- ç¹å®ã®ãªãœãŒã¹ïŒãã¡ã€ã«ïŒãã€ãŸã ãã®ã»ã¯ã·ã§ã³ã§ã¯/ images / *ã®ãããªè¡ãæžãããšã¯ã§ããŸãã
- .manifestãã¡ã€ã«ã®å®çŸ©ïŒããŒãžcïŒãå«ãããŒãžã¯èªåçã«ãã£ãã·ã¥ãããŸãã ãã¹ãŠã®ããŒãžã«ãããã§ã¹ãå±æ§ãè¿œå ããŠã.manifestãã¡ã€ã«ã«ãªã¹ãããã«ãµã€ãå šäœããã£ãã·ã¥ã§ããŸãã 泚ïŒMozilla Firefoxã¯ãåçã«çæãããããŒãžïŒ.phpïŒããããã§ã¹ãå±æ§ã§ãã£ãã·ã¥ããŸããã
ãããã¯ãŒã¯ã»ã¯ã·ã§ã³
ãã®ã»ã¯ã·ã§ã³ã«ã¯ãã€ã³ã¿ãŒãããããããŠã³ããŒãããå¿ èŠããããã¡ã€ã«ãžã®ãã¹ãå«ãŸããŠããŸãã ãã®ã»ã¯ã·ã§ã³ã§ãã¿ãŒã³ã䜿çšã§ããŸãã ããªãã¯ãã®ãããªæ§é ãæžãããšãã§ããŸãïŒ
CACHE MANIFEST NETWORK: *
ããã«ãããä¿åãããã³ããŒããªããã¹ãŠã®ãã¡ã€ã«ãããŠã³ããŒãã§ããŸãã ããŠã³ããŒãã®å¶éãå¿ èŠãªå Žåã¯ãç¹å®ã®ãã¡ã€ã«ïŒindex.phpãªã©ïŒããã³ãã£ã¬ã¯ããªïŒ/ images / *ãªã©ïŒãæå®ã§ããŸãã
FALLBACKã»ã¯ã·ã§ã³
ãã®ã»ã¯ã·ã§ã³ã¯ããã£ãã·ã¥ãããŠããªãããŒãžã«ã¢ã¯ã»ã¹ãããšãã«ãã©ãŠã¶ãŒããªãã©ã€ã³ã§è¡šç€ºãããã®ã瀺ããŸãã ã«ãŒã«ã¯ã次ã®ååã«åŸã£ãŠäœæãããŸãã
_ _
ã¹ããŒã¹ãšã¿ãã§ãã¹ãåºåãããšãã§ããŸãã
ãã®ã»ã¯ã·ã§ã³ã«é¢ããŠã次ã®æ©èœããããŸãã
- ãã¿ãŒã³ã䜿çšããŠãèŠæ±ãããããŒãžã瀺ãããšãã§ããŸãã æåã®äŸã§ã¯ãoffline.htmlããŒãžãããã£ãã·ã¥ãããŠããªããã¹ãŠã®ãã¡ã€ã«ã«å¯ŸããŠè¡šç€ºããããã«èšå®ããŸãã
CACHE MANIFEST FALLBACK: / /offline.html
ç¹å®ã®ãã¡ã€ã«ãŸãã¯ç¹å®ã®æ¡åŒµåãæã€ãã¡ã€ã«ïŒ* .html /offline.htmlãªã©ïŒãžã®åç §ã䜿çšã§ããŸããããã¯éåžžã«äŸ¿å©ã§ãã - 衚瀺ãããããŒãžã¯èªåçã«ãã£ãã·ã¥ããããããCACHEã»ã¯ã·ã§ã³ã§æå®ããå¿ èŠã¯ãããŸããã
ãããã¯ãŒã¯ãšãã©ãŒã«ããã¯ã«é¢ãã泚æ
çç¥ãã¹ãã§ã¯ãªã3ã€ã®ãã€ã³ãããããŸãã
- NETWORKã»ã¯ã·ã§ã³ãšFALLBACKã»ã¯ã·ã§ã³ã§æå®ãããŠããããã³ããŒãApplication Cacheãªããžããªã«ä¿åãããŠããªããã¹ãŠã®ãã¡ã€ã«ã¯ãæšæºã®ãã©ãŠã¶ãŒãã£ãã·ã¥ã«ãªãœãŒã¹ã®ã³ããŒããã£ãŠãããŠã³ããŒããããŸããã ãããã£ãŠãäžè¬çãªãã¿ãŒã³ïŒ*ãŸãã¯/ïŒã䜿çšããªãå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªãã¹ãŠã®ãã¡ã€ã«ãæå®ããããšãå¿ããªãã§ãã ãããæå®ããªããšããããã®ãã¡ã€ã«ãæäœã§ããŸããã ã»ã¯ã·ã§ã³ã®1ã€ã§äžè¬çãªãã¿ãŒã³ã䜿çšããã ãã§ååã§ãã
- NETWORKã»ã¯ã·ã§ã³ãšFALLBACKã»ã¯ã·ã§ã³ã®ã«ãŒã«ã¯ãCACHEã»ã¯ã·ã§ã³ã®ã«ãŒã«ãšéè€ããŸããïŒãæ瀺çãªãšã³ããªãïŒãã€ãŸãããããã¯ãŒã¯ãªãã§äœæ¥ããå Žåããã£ãã·ã¥ãããããŒã¿ãæåã«ããŒãããããã®åŸãããã2ã€ã®ã»ã¯ã·ã§ã³ã§æå®ããããªãœãŒã¹ã«é¢ããŠããªã·ãŒãå®çŸ©ãããŸãã å®éã«ã¯ãããã¯ã¢ããªã±ãŒã·ã§ã³ã®æ§é ãè€éã«ããŸãã
- ãããã®ã»ã¯ã·ã§ã³ã®èŠåã¯ã.manifestãã¡ã€ã«ã®å®çŸ©ãå«ãããŒãžã«ã¯é©çšãããŸãã-ããã¯åžžã«èªåçã«ãã£ãã·ã¥ãããŸãã
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥API
ãããã§ã¹ãå±æ§ã宣èšãããšãããã®window.applicationCacheããã¥ã¡ã³ãã®ãã£ãã·ã¥å¶åŸ¡ãªããžã§ã¯ããæäœããæ©äŒããããŸãã ãã®ãªããžã§ã¯ããæäœããé¢æ°ãšã¡ãœããã®çµã¿åããã¯ãã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥APIã圢æããŸãã
ãã®ãªããžã§ã¯ãã詳现ã«æ€èšããŠãã ããã
ApplicationCacheãªããžã§ã¯ãã¡ãœãã
ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ã¯æ¬¡ã®ãšããã§ãã
window.applicationCache
ããã§ã¡ãœããèªäœã
window.applicationCache.status
ãã®ã¡ãœããã¯ããã£ãã·ã¥ç¶æ ã®ã¹ããŒã¿ã¹ã«å¯Ÿå¿ããæ°å€ãè¿ããŸãã 次ã®ã¹ããŒã¿ã¹ãå¯èœã§ãã
- UNCACHED-ãã£ãã·ã¥ã¯ãŸã åæåãããŠããŸããïŒæ°å€0ïŒã
- IDLE-ã¢ã¯ã·ã§ã³ã¯ãã£ãã·ã¥ã§å®è¡ãããŸããïŒæ°å€1ïŒã
- CHECKING-.manifestãã¡ã€ã«ããã§ãã¯ãããŸãïŒæ°å€2ïŒã
- DOWNLOADING-ãªãœãŒã¹ããã£ãã·ã¥ã«å ¥ããããã«ããŒããããŸãïŒæ°å€3ïŒã
- UPDATEREADY-å¿ èŠãªãªãœãŒã¹ãããŒããããŠãããswapCacheïŒïŒã¡ãœããã䜿çšããŠåæåãå¿ èŠã§ãïŒæ°å€4ïŒã
- OBSOLETE-çŸåšã®ãã£ãã·ã¥ã¯éæšå¥šã§ãïŒæ°å€5ïŒã
ãŸããç¶æ å®æ°ã¯applicationCacheãªããžã§ã¯ãã§å®çŸ©ãããŸãïŒããšãã°ãcache.IDLEã¯1ã§ãïŒã ãããã£ãŠãæ°å€ãèšæ¶ããå¿ èŠã¯ãããŸããã
window.applicationCache.update()
ãã®ã¡ãœããã¯ã.manifestãã¡ã€ã«ããã§ãã¯ãããã®åŸã«å¿ èŠãªãªãœãŒã¹ãããŠã³ããŒãããããã»ã¹ãéå§ããŸãã
window.applicationCache.swapCache()
ãã®ã¡ãœããã¯ãå€ããã£ãã·ã¥ãã¡ã€ã«ã®ä»£ããã«æ°ãããã£ãã·ã¥ãã¡ã€ã«ã䜿çšããããã«ãã©ãŠã¶ãŒãåãæ¿ããŸãã ããŒãžã®åæç»ã¯è¡ãããŸããã次åãã£ãã·ã¥ããããã¡ã€ã«ã«ã¢ã¯ã»ã¹ãããšãã®ã¿ãæŽæ°ããããã£ãã·ã¥ããååŸãããŸãã
ãã®æ¹æ³ã®ç°¡åãªä»£æ¿æ¹æ³ã¯ãããšãã°location.reloadïŒïŒã䜿çšããŠããŒãžããªããŒãããããšã§ãã
ApplicationCacheãªããžã§ã¯ãã€ãã³ã
以äžã®ã€ãã³ãã¯ãapplicationCacheãªããžã§ã¯ãã«é¢é£ä»ããããŠããŸãã
- ãã£ãã·ã¥-ã¹ãã¬ãŒãžå ã®æåã®ãã£ãã·ã¥ã圢æããããšãã«çºçããŸãã
- ãã§ãã¯-.manifestãã¡ã€ã«ãåä¿¡ããèŠæ±ãéä¿¡ãããšãã«çºçããŸãã
- ããŠã³ããŒã-ãªãœãŒã¹ããã£ãã·ã¥ã«ããŒãããããšçºçããŸãã
- é²è¡ç¶æ³-åãªãœãŒã¹ãåå¥ã«ããŒãããããšãã«çºçããŸãã
- ãšã©ãŒ-ãªãœãŒã¹ãã¡ã€ã«ãŸãã¯.manifestãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹äžã«ãšã©ãŒãçºçããŸããã
- noupdate-.manifestãã¡ã€ã«ãæŽæ°ãããŠããªãããšã確èªãããšçºçããŸãã
- å»æ¢-ã¹ãã¬ãŒãžå ã®ãã£ãã·ã¥ãå€ããåé€ãããããšã確èªãããšçºçããŸãã
- updateready-æŽæ°ããããã£ãã·ã¥ã®ããŠã³ããŒããçµäºãããšçºçããŸãã
詳现ãªã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥
ãã¹ãŠãããŸãæãç³ãŸããŠããããã§ãããå®éã«ã¯ã©ã®ããã«æ©èœããŸããïŒ æ¬¡ã«ããã®åé¡ã«å¯ŸåŠããŸãã
æåã«èæ ®ãã¹ãããšã¯ãã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®å®çšçãªæ®µéçãªã¹ããŒã ã§ãã
- ãã©ãŠã¶ããããã§ã¹ãå±æ§ãæå®ããããã¥ã¡ã³ããåããŠããŒããããšãè¿œå ã®ãªã¯ãšã¹ããçºçãã.manifestãã¡ã€ã«ãåä¿¡ãããŸãïŒã€ãã³ãã®ç¢ºèªïŒã æåã®ã¢ã¯ã»ã¹ã§ããã®ããã¥ã¡ã³ãã®ãã£ãã·ã¥ããŸã ååšããªãå Žåããã¹ãŠã®ãã¡ã€ã«ã¯.manifestãã¡ã€ã«ïŒããŠã³ããŒãã€ãã³ãïŒã§æå®ãããã«ãŒã«ã«åŸã£ãŠãã£ãã·ã¥ã«ããŒããããŸãã ãã¡ã€ã«ã¯æšæºã®ãã©ãŠã¶ãã£ãã·ã¥ããããŠã³ããŒãã§ããŸããããã¯ã«ãŒã«ãå€æŽãããšãã«å¹æçã§ãã ãã®çµæãæåã®ãããã§ã¹ããã£ãã·ã¥ããŒã¿ã¹ãã¢ãäœæãããŸãïŒãã£ãã·ã¥ã€ãã³ãïŒã
- åãããã¥ã¡ã³ãã«å床ã¢ã¯ã»ã¹ãããšã以åã«ãã£ãã·ã¥ãããããããã£ãã·ã¥ããããŒããããŸãïŒãããã§ã¹ãå±æ§ãæã€ããã¥ã¡ã³ãã¯åžžã«ãã£ãã·ã¥ãããŸãïŒã ãã®æç¹ã§ãµãŒããŒãžã®ã¢ã¯ã»ã¹ã¯çºçããŸããã ãã®ããã¥ã¡ã³ãã®ãã£ãã·ã¥ç®¡çãªããžã§ã¯ãwindow.applicationCacheã¯ãããã¥ã¡ã³ããããŒãããåŸã.manifestãã¡ã€ã«ãžã®å€æŽã®æ€èšŒãéå§ãããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸãïŒã€ãã³ãã®ç¢ºèªïŒã ãµãŒããŒã¯å€æŽã«ã€ããŠå¿çããŠããŸãã
- .manifestãã¡ã€ã«ãå€æŽãããŠããªãå ŽåïŒnoupdateã€ãã³ãïŒãããŠã³ããŒãã¯å®äºããã¢ããªã±ãŒã·ã§ã³ã¯æå³ããæ¹åã§åäœãç¶ããŸãã ãã£ãã·ã¥ããããã¡ã€ã«ãåä¿¡ããããã®ãµãŒããŒãžã®èŠæ±ã¯ãããŸããã
- .manifestãã¡ã€ã«ãå€æŽãããŠããå Žåãããã¥ã¡ã³ãã®æšæºããŠã³ããŒããå®è¡ããããã£ãã·ã¥ã®ããã¯ã°ã©ãŠã³ãããŒãïŒããŠã³ããŒãã€ãã³ãïŒãéå§ãããŸãã ããŒãïŒupdatereadyã€ãã³ãïŒåŸãããŒãžã¯åæç»ãããŸããã æŽæ°ããããã£ãã·ã¥ããŒã¿ã¯ãããã¥ã¡ã³ãã次ã«ããŒãããããšãã«ã®ã¿äœ¿çšãããŸãã
- .manifestãã¡ã€ã«ã®èªã¿èŸŒã¿äžã«ãšã©ãŒãçºçããå ŽåããŸãã¯ååšããªããã¡ã€ã«ãžã®ãªã³ã¯ïŒãšã©ãŒã€ãã³ãïŒãªã©ã®ãšã©ãŒãå«ãŸããŠããå ŽåãããŠã³ããŒãã¯ãªãœãŒã¹ã®ä¿åãããã³ããŒã䜿çšããŠéåžžã¢ãŒãã§å®è¡ãããŸãã ãã®å Žåããã£ãã·ã¥ã¯åœ±é¿ãåããããã©ãŠã¶ã¯ããã䜿çšããŸããã
ãã£ãã·ã¥æŽæ°
ãããšã¯å¥ã«ããã£ãã·ã¥ã®æŽæ°ïŒã¯ãªã¢ïŒãæ€èšããå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥æäœã®è©³çŽ°ãªã¹ããŒã ã®åæã¯ãããŒã¿ãµãŒããŒã®å€æŽããã£ãã·ã¥å ã®ãã®ããŒã¿ãèªåçã«æŽæ°ããªãããšã瀺ããŠããŸãã ãã£ãã·ã¥ã¯æ¬¡ã®æ¹æ³ã§æŽæ°ã§ããŸãã
- ãŠãŒã¶ãŒã¯å€ããã£ãã·ã¥å
ã®ããŒã¿ãæåã§åé€ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãšæšæºãã©ãŠã¶ãã£ãã·ã¥ã¯åããã®ã§ã¯ãªãããšãç解ããŠãã ããã åè¿°ã®ããã«ãäž¡æ¹ã®ãã£ãã·ã³ã°ã¡ã«ããºã ã¯ãæäœã¢ã«ãŽãªãºã ãæ©èœãããã³ä¿åå Žæãç°ãªããŸãã æšæºãã£ãã·ã¥ãã¯ãªã¢ããŠããã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã«ã¯åœ±é¿ããŸããã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãã¯ãªãŒã³ã¢ããããã«ã¯ããã¹ãã¬ãŒãžãã®ã¯ãªãŒãã³ã°æ©èœã䜿çšããå¿ èŠããããŸããããã¯ãææ°ã®ãã©ãŠã¶ã®æ°ããèšå®é ç®ã§ãã
Mozilla Firefoxãã©ãŠã¶ãŒã®ã¹ãã¬ãŒãžãã¯ãªã¢ããæ¹æ³ã«ã€ããŠã¯ã support.mozilla.com/en/kb/okno - nastrojki - panel - dopolnitelnye#w_ahaalaklai - eaulikioiãã芧ãã ãã ã
Operaã§ãããã©ã®ããã«è¡ããããã«ã€ããŠ-help.opera.com/Windows/11.50/en/storage.html
Google Chromeã®ãã£ãã·ã¥ãç°¡åã«ã¯ãªã¢ããæ¹æ³ã¯ãããŸããã ãããè¡ãã«ã¯ãchromeïŒ// appcache-internals / controlããŒãžã䜿çšããŸãã
Safariã§ã¯ããã£ãã·ã¥ã¯æšæºã®ãã©ãŠã¶ãŒãã£ãã·ã¥ãšå ±ã«ã¯ãªã¢ãããŸãã ãã«ããåç §ããŠãã ããã - .manifestãã¡ã€ã«ãå€æŽããã å€æŽãããšããã¹ãŠã®ãã£ãã·ã¥ãªãœãŒã¹ã®ããŠã³ããŒããšãã®åŸã®æŽæ°ãéå§ãããŸãã å€æŽã¯ãåŸç¶ã®ããŒãžã®ãªããŒãåŸã«æå¹ã«ãªããŸãã ããšãã°ãã³ã¡ã³ãã¢ãŠããããããã€ãã®æåãå€æŽããããšã§ãããå®è¡ã§ããŸãïŒå
ã®äŸã®ããŒãžã§ã³ãå€æŽããŸããïŒã
CACHE MANIFEST # 2
- Application Cache APIã䜿çšãããœãããŠã§ã¢ã®æŽæ°ã ãã®æ¹æ³ã«ã€ããŠã¯ã以äžã®äŸã§èª¬æããŸãã
å®éã®ãããžã§ã¯ãã§ã®äœ¿çšã«ã¯ãæåŸã®2ã€ã®æ¹æ³ã®ã¿ãé©ããŠããŸããããã¯ãMozilla Firefoxãã©ãŠã¶ãŒã®ãç©æ¥µçãªãã£ãã·ã³ã°ãã«é©ããªãå Žåã«ã¯åå䟿å©ã§ãã
é衚瀺ã®æŽæ°ã®åé¡
Mozilla Firefoxãã©ãŠã¶ãŒã«ã¯ããã¢ã°ã¬ãã·ããã£ãã·ã³ã°ããšåŒã°ãããç¹ç°ãªããã£ãã·ã¥æŽæ°ã¡ã«ããºã ããããŸãã ãã®åé¡ã¯ãæšæºã®ãã£ãã·ã¥ãšã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ãçµã¿åããããšæããã«ãªããŸããå€ããã©ãŠã¶ãŒã§ãã£ãã·ã¥ã䜿çšããå Žåã¯ãããããçµã¿åãããå¿ èŠããããŸãã
å®éã®ãšãããMozilla Firefoxã§Application CacheãæŽæ°ãããšããµãŒããŒäžã®å€æŽããã§ãã¯ããã«ããŒã¿ãæšæºãã£ãã·ã¥ããååŸãããŸãã ããã«ãããæšæºãã£ãã·ã¥ããã®å€ãããŒã¿ãæŽæ°ãããã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã«å ¥ãå¯èœæ§ããããŸãã æŽæ°ã¯å®è¡ãããŸããããã£ãã·ã¥ã«ã¯å€ãããŒãžã§ã³ã®ãã¡ã€ã«ãå«ãŸããŸãã ãã®äºå®ã¯ãApplication Cacheã䜿çšããå©ç¹ã«çåãæããããŠããŸãã
ãã®ç¶æ³ã§ãã£ãã·ã¥ãæŽæ°ããæ£ããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ãã¡ã€ã«åã®å€æŽã
- 2段éæŽæ°ã
æåã®ã±ãŒã¹ã§ã¯ã.manifestãã¡ã€ã«ãå«ããèšåãããŠãããã¹ãŠã®ãªãœãŒã¹ã§å€æŽããããã¡ã€ã«ã®ååãå€æŽããŸãã å ã®ååã®ãã¡ã€ã«ã¯ååšããªãã¯ãã§ãïŒïŒïŒã ãã®çµæã次ã«å€æŽã確èªãããšãã«ãååšããªããã¡ã€ã«ã®èªã¿èŸŒã¿äžã«ãšã©ãŒãçºçãããã£ãã·ã¥ãªãœãŒã¹ããµãŒããŒããããŠã³ããŒããããŸãã
ãã¡ã€ã«åãå€æŽãããªãã·ã§ã³ãäœããã®çç±ã§é©åã§ãªãå Žåã¯ã2段éã®ãã£ãã·ã¥æŽæ°ã䜿çšããå¿ èŠããããŸãã
æŽæ°ã®æåã®æ®µéã§ãå€æŽããããã¡ã€ã«ã.manifestãã¡ã€ã«ã®CACHEã»ã¯ã·ã§ã³ããé€å€ããæå®ããããã¡ã€ã«ã®ããããŒã«æå¹æéãèšå®ããŸãã
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Pragma: no-cache');
ãã®çµæãã¢ã¯ãã£ããªãŠãŒã¶ãŒã¯æšæºãã£ãã·ã¥å ã®ãã®ãã¡ã€ã«ãæŽæ°ããã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ããåé€ãããŸãã
2çªç®ã®ã¹ãããã§ã¯ãå€æŽããããã¡ã€ã«ãæ¢ã«CACHEã»ã¯ã·ã§ã³ã«å«ããŠãããæ£åžžã«ãã£ãã·ã¥ãããŠããŸãã æ®å¿µãªããããã®æŽæ°ã¯ã¢ã¯ãã£ããªãŠãŒã¶ãŒã«ã®ã¿åœ±é¿ããããããã¡ã€ã«åã®å€æŽã䜿çšããŠã¿ãŠãã ããã
ãã¡ã€ã³ãã€ã³ãã£ã³ã°
èšåããå¿ èŠããããã1ã€ã®éèŠãªç¹ã¯ããã£ãã·ã¥ã.manifestãã¡ã€ã«ã宣èšãããŠããããŒãžã§ã¯ãªããã¡ã€ã³ã«ãã€ã³ããããŠããããšã§ãã ãã£ãã·ã¥ããããªãœãŒã¹ã¯ã.manifestãã¡ã€ã«ãžã®ãªã³ã¯ããªãå Žåã§ãããã®ãã¡ã€ã³ã®ãã¹ãŠã®ããŒãžã«äœ¿çšãããŸãã ããã¯éåžžã«äŸ¿å©ã§ã-éå§ããŒãžã§ãã£ãã·ã¥ããããªãœãŒã¹ãå®çŸ©ã§ããä»ã®ããŒãžã§ãããããã£ãã·ã¥ããããšãå¿é ããå¿ èŠã¯ãããŸããã
åããã¡ã€ã³ã®ç°ãªãããŒãžã«è€æ°ã®ç°ãªã.manifestãã¡ã€ã«ã䜿çšãããšããããã¯éè€ããŸãã æåŸã«ã¢ããããŒãããã.manifestãã¡ã€ã«ã§æå®ããããªãœãŒã¹ã®ã¿ããã£ãã·ã¥ã«ä¿åãããŸãã
ãŸããè€æ°ã®.manifestãã¡ã€ã«ã䜿çšããå Žåãä¿åãããŠããããŒãžãçžäºã«åšæçã«ãã£ãã·ã¥ããç¶æ³ãäœæã§ããŸãã ãã®ç¶æ³ãçºçãããšãã¢ããªã±ãŒã·ã§ã³ãé皌åç¶æ ã«ãªããŸãã äžèšãèæ ®ãããšãè€æ°ã®.manifestãã¡ã€ã«ã䜿çšããããšã¯éçŸå®çã§å±éºã§ããããã®å¯èœæ§ã¯ååšããŸãã
ãã¡ã€ã³ãã€ã³ãã£ã³ã°ãããã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã¯ãã¬ãŒã ã®ãã¡ã€ã³ãã£ãã·ã¥ã䜿çšããŠãã¬ãŒã ã§å®è¡ãããããšã«ããªããŸãã ãã®ç¬éã¯ã²ãŒã éçºè ã«æè¬ãããã¹ãã§ãã
ãªãã©ã€ã³ã§äœæ¥ãã
Application Cacheã®ãã1ã€ã®æãããªå©ç¹ã¯ããªãã©ã€ã³ã§äœæ¥ã§ããããšã§ãã æ³åããŠã¿ãŠãã ãã-ã¯ã©ã€ã¢ã³ãã¯äžæçã«ãããã¯ãŒã¯ã®åäœãåæ¢ããŸãããã圌ã¯ãŸã ããªãã®ãªãœãŒã¹ã§åäœã§ããŸãã
ããããããã§ããã¹ãŠãã¹ã ãŒãºãšããããã§ã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®1ã€ã®æ©èœãæãåºããŠãã ãã-.manifestãã¡ã€ã«ã宣èšãããŠããããŒãžã¯åžžã«ãã£ãã·ã¥ãããŸãã ãã®çµæãããŒãžã¯ããã©ãŒã«ããã¯ã§ã¯ãªããCACHEã»ã¯ã·ã§ã³ã«ãã£ãŠã¬ã€ããããŠããŒããããŸãã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã¯æ¥ç¶ããããã®ããã«åäœããŸãã ããããæ¥ç¶ãæ¬ èœããŠãããã©ãããå€æããæ¹æ³ã¯ïŒ
ãããè¡ãããã«ãHTML5ä»æ§ã§ã¯ãæ¥ç¶ã®äœææãšåææã«ããããçºçãã2ã€ã®ãªã³ã©ã€ã³ã€ãã³ããšãªãã©ã€ã³ã€ãã³ããå®çŸ©ããŠããŸãã bolkã®habraiserã瀺åããããã« ããããã®ã€ãã³ãã¯Safari 6ãšChrome 21ã§æ©èœããŸããä»ã®ãã©ãŠã¶ãŒã§ã¯ãããããå®è£ ãããŠããŸããã
ããã²ãŒã¿ãŒãªããžã§ã¯ãã®ãªã³ã©ã€ã³ããããã£ã䜿çšããããšãã§ããŸãã
window.navigator.onLine
ãã®ããããã£ã¯ãæ¥ç¶ãååšããå Žåã¯trueãè¿ããååšããªãå Žåã¯falseãè¿ããŸãã ããŒãžãåæåãããšãã«ããã®ããããã£ã確èªãããã®å€ã«åºã¥ããŠäœæ¥ãæ§ç¯ããå¿ èŠãããããšãããããŸãã çŸæç¹ã§ã¯ãnavigator.onLineããããã£ã¯Mozilla Firefox 2ãInternet Explorer 4以éã§ãµããŒããããŠããŸãã
䜿çšäŸïŒ
<!DOCTYPE HTML> <html lang="ru" manifest="cache.manifest"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Application Cache Test</title> </head> <body> <style> html {font-family: "DejaVu Sans", "Geneva CY", "Verdana"; background: #FFFFFF; OVERFLOW: hidden; ; border: 0;} body {width: 880px; height: 600px; position: relative; background: #999999; margin: 20px auto; box-shadow: 0 0 15px 10px #999999; -webkit-box-shadow: 0 0 15px 10px #999999; -moz-box-shadow: 0 0 15px 10px #999999;} /* */ .progressbar {display:none; position:absolute; left:0px; top:0px; width:880px; height:600px; background-color:#333333; z-index:256; border:1px solid #333333;} .progressbar #progresstext {position:absolute; left:0px; top:200px; width:880px; color:#66FF00; text-align:center; font-size:36px; text-shadow:0 0 0.8em #AAFF00, 0 0 0.8em #AAFF00;} .progressbar #progress {position:absolute; left:100px; top:300px; width:600px; height:40px;} /* */ .flash {position:absolute; left:0px; top:0px; width: 880px; height: 600px; background-color:#666666; z-index:51; border: 1px solid #333333;} </style> <!-- --> <div id="flash" class="flash"></div> <!-- --> <div id="progressbar" class="progressbar"><div id="progresstext"></div><progress id="progress"></progress></div> <script type="text/javascript" src="js/jquery-1.5.min.js"></script> <script type="text/javascript"> // var progress_value = 0; var progress_max = 1; $(function() { // if (navigator.onLine) { alert(' '); } else { alert(' '); } // Application Cache cache = window.applicationCache; if (cache) { // // . . cache.addEventListener('cached', function(e) {ProgressHide();}, false); // . progress_max - . cache.addEventListener('downloading', function(e) {ProgressShow(); progress_max = 3;}, false); // . cache.addEventListener('progress', function(e) {ProgressChange();}, false); // . . . . cache.addEventListener('updateready', function(e) {ProgressHide(); window.applicationCache.swapCache(); location.reload();}, false); } }); // $(document).keyup(function(event){ // shift+1 if (event.shiftKey && event.keyCode == 49) { window.applicationCache.update(); } return false; }); //------------------- ----------------// function ProgressShow() { $("#progressbar").show(300); progress_value = 0; } function ProgressChange() { progress_value++; $("#progress").attr({max: progress_max, value: progress_value}); } function ProgressHide() { $("#progressbar").hide(300); } //-------------------------------------------------------------------------// </script> </body> </html>
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®äœ¿çšã®æ©èœãšèª²é¡
äžèšã®æ å ±ã¯ãã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®åäœãç解ããã®ã«ååã§ãã æ©äŒãšå°é£ã«ã€ããŠæåã®çµè«ãåŒãåºãããšãã§ããŸãã
Application Cacheã®æ©èœãšå©ç¹ã¯æ¬¡ã®ãšããã§ãã
- ãã£ãã·ã¥ããããã¡ã€ã«ã®ããŠã³ããŒãã«æéãè²»ããå¿ èŠããªããããããŒãžã®èªã¿èŸŒã¿é床ãäžããŸãã
- å€æŽã確èªããããã®ãªãœãŒã¹ïŒã¯ã©ã€ã¢ã³ãã«ãã£ãã·ã¥ãããããŒã¿ãåç §ããïŒã«å¯Ÿããå€æ°ã®èŠæ±ã®ä»£ããã«ã.manifestãã¡ã€ã«ã«å¯ŸããèŠæ±ã1ã€ãããªãããããµãŒããŒã®è² è·ã軜æžããŸãã
- äºåå®çŸ©ãããã«ãŒã«ã«åŸã£ãŠãã¡ã€ã«ããã£ãã·ã¥ããæ©èœã
- å³å¯ãªå€æŽå¶åŸ¡ãåããæ°žç¶çãªãã¡ã€ã«ã¹ãã¬ãŒãžã
- ã¢ããªã±ãŒã·ã§ã³ããªãã©ã€ã³ã§æäœããæ©èœã
- ãã£ãã·ã¥ã¯ãã¬ãŒã åäœã§æ©èœããŸãã
ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã®äœ¿çšã«é¢ããåé¡ã¯æ¬¡ã®ãšããã§ãã
- ã©ã³ãã£ã³ã°ããŒãžã衚瀺ããåŸã«åããŠããã¥ã¡ã³ããèªã¿èŸŒããšããã£ãã·ã¥ãããããã¥ã¡ã³ãã®ããã¯ã°ã©ãŠã³ãããŠã³ããŒããèªåçã«éå§ãããŸãã «». , .
- . , . . .
- . , .manifest .
- , NETWORK FALLBACK , .
- è€æ°ã®.manifestãã¡ã€ã«ã䜿çšããå Žåã埪ç°ãã£ãã·ã¥ç¶æ³ãäœæããã¢ããªã±ãŒã·ã§ã³ãåäœäžèœã«ããããšãã§ããŸãã
- ãªãã©ã€ã³æäœã®FALLBACKã»ã¯ã·ã§ã³ã®èŠåã¯ãCACHEã»ã¯ã·ã§ã³ã®èŠåãšéè€ããŸãããå®éã«ã¯ãããã«ããããªãã©ã€ã³ã§äœæ¥ããããã®ã¢ããªã±ãŒã·ã§ã³ã®æ§é ãè€éã«ãªããŸãã
- .manifestãã¡ã€ã«å®çŸ©ãå«ãããŒãžã¯èªåçã«ãã£ãã·ã¥ãããŸãããªãã©ã€ã³ã¢ãŒãã§ç°¡åã«äº€æã§ããªããã®ã
ãŸãã次ã®ãã¥ã¢ã³ã¹ã«ã泚æããå¿ èŠããããŸãã
- POSTèŠæ±ã§åä¿¡ãããªãœãŒã¹ã¯ãã£ãã·ã¥ãããããã£ãã·ã¥ããååŸãããŸããã
- ããã©ã«ãã§ã¯ããã£ãã·ã¥ãããããŒã¿ã®ãµã€ãºã¯50 MBã«å¶éãããŠããŸããå€ãããŒãžã§ã³ã®Mozilla Firefoxããã³Google Chromeã®å Žåãå¶éã¯5 MBã§ãããŸããOperaãã©ãŠã¶ã§ã¯ãèšå®ã§å¯èœãªãã£ãã·ã¥ã®ãµã€ãºãå¢ããããšãã§ããŸãã
- .manifest , , , utf-8.
- Application Cache . Application Cache Google Chrome 4.0, Mozilla Firefox 3.5, Internet Explorer 10, Opera 10.6, Opera Mobile 11, Safari 4 .
- Application Cache «». Application Cache . Mozilla Firefox.
- Application Cache , , Cache-Control: no-store.
?
, Application Cache â . , FullAjax. Application Cache , , .. , .
, Application Cache.