åæã«ãããã¯ããã€ãã®ç¹å¥ã§ãšããŸããã¯ãªWebãµãŒãã¹ã®éçºè ã®ãæ°ãŸããããšèŠãªãããã¹ãã§ã¯ãããŸããã blogspot.com/2008/05/myspace-message-center-is-now-searching.html ïŒã ãããã¯ãŒã¯ã«ã¯ãããŒã«ã«ãªããžããªã®äœ¿çšã«é¢ããå€æ°ã®åºçç©ããããŸããããšãã°ãè³æã®æºåäžã«èª¿æ»ãã以äžã®åºçç©ã«æ³šç®ã§ããŸãã
browserpersistence.ru
abrdev.com/?tag=storage
pablotron.org/software/persist-js
ããŒã«ã«ã¹ãã¬ãŒãžãšã¯äœãªã®ãããããªãå ŽåããŸãã¯æ £ããŠããªãå Žåã¯ãäžèšã®ãªã³ã¯ã§ã¹ãã¬ãŒãžãšãã®ã¢ããªã±ãŒã·ã§ã³é åã«é¢ããå æ¬çãªæ å ±ãèŠã€ããããšãã§ããŸãã
ããŒã«ã«ããŒã¿ã¹ãã¬ãŒãžãå®è£ ããããã®ãã¹ãŠã®å¯èœãªãªãã·ã§ã³ãæ€èšããçµæãçŸæç¹ã§æãé åçãªã®ã¯FlashããŒã¹ã®ã¹ãã¬ãŒãžã§ãã æ°žç¶çãªããŒã¿ã¹ãã¬ãŒãžãã€ãŸããããã«ããŒã¿ãä¿åããããšã«ã€ããŠè©±ããŠããããšã«æ³šæããŠãã ããããã©ãŠã¶ã§ããŒãžãéããæŽæ°ããããã«ã¯ã³ã³ãã¥ãŒã¿ãŒãåèµ·åããåŸã§ããã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã§ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããšãæåŸ ããŠããŸãã ãã®èšäºã§ã¯ãFlashããŒã¹ã®ã¹ãã¬ãŒãžã®å®è£ ãåæããŸãã
ãã©ãã·ã¥ã¹ãã¬ãŒãžã®æ確ãªå©ç¹ãèŠãŠã¿ãŸãããã
- ãã©ãŠã¶ãŒéã®æ倧ã¢ã¯ã»ã·ããªãã£ïŒæãããªçç±ã«ãããWebã«å ±éã®ãã¯ãããžãŒããµããŒãããªããšããŸããã¯ãªãã©ãŠã¶ãŒãªãã·ã§ã³ã¯èæ ®ããŠããŸããïŒã
- æ倧ã®æ®åçïŒFlashã¯95ïŒ ä»¥äžã®ãã©ãŠã¶ã«ã€ã³ã¹ããŒã«ãããŠããŸãã
- ã»ãŒç¡å¶éã®éã®ããŒã¿ãä¿åããæ©èœïŒäžéšã®äºçŽã§ã¯ãããšãã°ããŠãŒã¶ãŒãæå®ãããããªã¥ãŒã ã®ä¿åãæ瀺çã«èš±å¯ããããç¡å¶éã®éã®æ å ±ãä¿åããèš±å¯ãèšå®ããå¿ èŠããããŸãïŒã
äžéšã®éçºè ã¯ããããŒã®ããã«ãŠãŒã¶ãŒãFlashããããã¯ãããšãããã¡ãªããããã®æ¹æ³ã«èµ·å ããåŸåããããŸãããç§ã¯ãã®åé¡ãããé ããã®ãšèããŠããŸãã ãããããªãã圌ãã¯ã°ã©ãã£ãã¯ã¹ãšã¹ã¯ãªããããªãã«ããŸã-ã€ãŸãã圌ãããèªåèªèº«ã®ããããªããšèšã£ãŠããããã«-çŸåšãFlashã¯å€ãã®ãµã€ãã®äžå¯æ¬ ãªéšåã§ãããWebç°å¢ã§ãã«ãã¡ãã£ã¢ãå®è£ ããããã®å¯äžã®èš±å®¹å¯èœãªæè¡ã§ãã
åæãããã¹ãŠã®Flashã¹ããŒãªãŒã®äžã§ãæ©èœé¢ã§æãé åçãªã®ã¯ã¹ããŒãªãŒã§ãããããã¯Dojoã©ã€ãã©ãªïŒdojotoolkit.orgïŒã®äžéšã§ããããšã«æ³šæããŠãã ããã ããã«ãæŠããŠãããã¯ãã®æè¡ã®æåã®ç£æ¥å®è£ ã§ãã
é¡èãªå©ç¹ïŒ
- JSãªããžã§ã¯ããä¿åããæ©èœãèªåã·ãªã¢ã«åããã³éã·ãªã¢ã«åïŒãã¡ãããJSON圢åŒïŒã
- Flash ExternalInterfaceæäœã®ããã€ãã®ãã°ãèæ ®ãããŸããã
- ããŒã¿ãŠã§ã¢ããŠã¹ãæäœããããã®åŒ·åã§æ±çšçãªAPIã
- ä¿åãããããŒã¿ã®çµã¿èŸŒã¿åå空éã®ãµããŒãã¯ãåæã«è€æ°ã®ãªããžããªã§åäœããŸãã
- ä¿çäžã®ã¹ããŒã¿ã¹ã
- çŸåšã®ã¹ãã¬ãŒãžãµã€ãºã®å¶éãè¶ ããå Žå-ãµã€ãºãå¢ããèš±å¯ãæ±ãããã€ã¢ãã°ãèªåçã«è¡šç€ºãããŸãã
ãã¡ããããã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ãã¹ãŠã®å©ç¹ããããŸãããæ¬ ç¹ããªãããã§ã¯ãããŸããã
- 倧èŠæš¡ãªé åžããªã¥ãŒã ïŒã¹ãã¬ãŒãžã·ã¹ãã ã«ã®ã¿Dojoã䜿çšããå ŽåïŒã
- ãªããžããªãåæåãããšãã«ãäžèŠãªã³ãŒããããŒãããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡æã«ã¯å¿ èŠãªãå ŽåããããŸãã
- ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ãã¡ã€ã«ããã¹ã¯ãªãããå®è¡ããå Žåã®åäœäžèœïŒ//
ãã¹ãäŸdownload.dojotoolkit.org/release-1.1.0/dojo-release-1.1.0/dojox/storage/tests/test_storage.html?forceStorageProvider=dojox.storage.FlashStorageProviderã¯13ïŒïŒïŒã¹ã¯ãªãããããŒãããŸãã ãããã¯ãã¹ãŠAJAXã䜿çšããŠããŒããããŸããFlashStorageã䜿çšããããæ瀺çã«æå®ããå Žåã§ãããã®ã¹ãã¬ãŒãžãæ©èœããããã«å¿ èŠã§ã¯ãªãå€ãã®è¿œå ãã¡ã€ã«ãããŒããããŸãã
æãåçŽãªhelloworldã®äŸã¯ã download.dojotoolkit.org / release-1.1.0 / dojo-release-1.1.0 / dojox / storage / demos / helloworld.htmlãå°ãªããšãããã€ãã®JSã¹ã¯ãªãããããŒãããããšã§ãã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ãDojo Toolkitã®æ©èœã䜿çšããªãå Žåãããã䜿çšããŠã¹ãã¬ãŒãžã®ã¿ãå®è£ ããããšã¯éåžžã«ãªãœãŒã¹ãæ¶è²»ããå¹ççã§ã¯ãªããšçµè«ä»ããããšãã§ããŸãã
ãæ¬ ç¹ã®æ ¹æ¬ãã¯åãã§ããããããããã®æ¬ ç¹ãåãé€ãããå°ãªããšã圱é¿ãæå°éã«æããããšã«ããŸããã Dojo 1.1ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããåŸããã©ãã·ã¥ã¹ãã¬ãŒãžã®ã¿ãåå¥ã«åé¢ããããã«ããã®ã¢ãŒããã¯ãã£ãåæããããã«åº§ã£ãŠããŸããã ãããæåã®å°é£ãå€æããå Žæã§ãã 䞻芳çã«ãDojoã®å éšã¢ãŒããã¯ãã£ã¯éåžžã«éèŠã§è€éã§ãïŒãã¡ãããããã¯ããããæãæè¿ã®ããã€ãã®ããã°ã©ãã³ã°ãã©ãã€ã ã䜿çšããŠJSã§å®è£ ããããã¹ãŠã®æã匷åãªãã¬ãŒã ã¯ãŒã¯ã§ãããããæè¿ãã¢ã¹ãã¯ãæåããã°ã©ãã³ã°ãå®è£ ããããã®ã¢ãžã¥ãŒã«ã§è£å ãããŸããïŒã ãããã£ãŠããã©ãã·ã¥ã¹ãã¬ãŒãžãåå¥ã«åçŽãã€åå¥ã«åé¢ããããšã¯ã§ããŸããã§ããã ãããããããã®æ¬ ç¹ã解æ¶ããããšããé¡æã¯ãééããå°é£ä»¥äžã®ãã®ã§ããããšãå€æããŸããã
äœæ¥ã®æåã®æ®µéã§ã¯æ°æéã®äœæ¥ãå¿ èŠã§ãããããã®ããŒãžã§ã³ïŒã³ãŒãã®å éšã¢ãŒããã¯ãã£ãå€æŽããã«ïŒã®ééã¯100 KbïŒDojoã³ã¢+ã¹ãã¬ãŒãžã¢ãžã¥ãŒã«ïŒãè¶ ããŠããŸããã 綿å¯ãªåæãè¡ã£ããšããããŸã å€ãã®éå°ãæ®ã£ãŠããããšãããããŸããã ãã®è¶ æå°åããŒãžã§ã³ãããã«å§çž®ããããã®ç¬¬2段éã¯æ¢ã«æ°æ¥ãããããã®å®è£ ã«ã¯ããã15 KBããããããŸãããããã«ã¯ãDojo Toolkitã®ãœãŒã¹ã³ãŒãã«å¯Ÿããèšå€§ãªå€æŽãå¿ èŠã«ãªããŸãã
Flash Storageã®ãã詳现ãªãã¹ãã§ã¯ããã1ã€ã®å©ç¹ã瀺ãããŸãããã¹ãã¬ãŒãžã¯ãã³ã³ãã¥ãŒã¿ãŒäžã®ãã¹ãŠã®ãã©ãŠã¶ãŒã§åãã§ãã Firefoxã䜿çšããŠä¿åãããããŒã¿ã¯Internet Explorerããç°¡åã«ååŸããããã®éãåæ§ã§ãã
è¿œå ã®æ¬ ç¹ã確èªãããŸããããã©ãã·ã¥ã¹ãã¬ãŒãžãåæåããããŸã§åŸ ã€å¿ èŠããããŸãã ã€ãŸããã¹ãã¬ãŒãžã®ãã©ãã·ã¥ã¯ãªãããããŒããããåŸãã¹ãã¬ãŒãžã®äœ¿çšã¯éåæã¢ãŒãã§ã®ã¿å¯èœã§ãã ãããã£ãŠãFlash Storageã䜿çšããWebã¢ããªã±ãŒã·ã§ã³ã¯ããããèæ ®ããŠèšèšããå¿ èŠããããŸãã
ãã ããåã«ã¯ã©ã€ã¢ã³ãã«ããŒã¿ãä¿åããã¢ããªã±ãŒã·ã§ã³ãæ©èœããããã«ãããåä¿¡ããæ©èœã ããæ©èœã§ã¯ãããŸããã ãã®ãããªãã£ãã·ã¥å ã®ããŒã¿ãå¶åŸ¡ãããµãŒããŒåŽããèªåçã«æŽæ°ã§ããããã«ãããã§ãã
ããŒã«ã«ã¹ãã¬ãŒãžã䜿çšããå Žåãéåžžã«éèŠãªç¹ã¯ãã¯ã©ã€ã¢ã³ãåŽã§ã®ããŒã¿æŽæ°ã¢ã«ãŽãªãºã ã®å®è£ ã§ãã 3ã€ã®ç°ãªãå®è£ ãªãã·ã§ã³ã«æ³šç®ããŠãã ããã
ã°ããŒãã«ãµã€ãã®ããŒãžã§ã³ç®¡çã®æ¹æ³
ãã®ã¡ãœããã®ã¢ã«ãŽãªãºã ã¯ãSVNã®å®è£ ã®åçã«äŒŒãŠããŸãã ãµã€ãã«ã¯ã°ããŒãã«ããŒãžã§ã³çªå·ããããŸãã åã ã®ã³ã³ãã³ãã®å€æŽãŸãã¯ã³ã³ãã³ãã®ã°ã«ãŒãã®å€æŽã«ãããããŒãžã§ã³çªå·ãå¢å ããŸãã ãµã€ãã®æåã®ããŒãäžã«ãã¯ã©ã€ã¢ã³ãåŽã®ããŒãžã§ã³çªå·ããµãŒããŒã«éä¿¡ãããŸãã ãµãŒããŒã¯ãã¯ã©ã€ã¢ã³ãäžã®éä¿¡ãããããŒãžã§ã³ãšãµãŒããŒäžã®çŸåšã®ããŒãžã§ã³ã確èªããéããããå Žåã¯ããµã€ãã®ã¯ã©ã€ã¢ã³ãããŒãžã§ã³ãšãµãŒããŒããŒãžã§ã³ã®éãã«å¿ããŠãã³ã³ãã³ãã®å€æŽãããèå¥åããŒã®ãªã¹ããçæãããŸãã ã€ãŸãããµãŒããŒäžã®ã³ã³ãã³ããå€æŽãããšãã³ã³ãã³ãããŒã®ãªã¹ããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããŸããããã¯ãªããžããªã§åé€ããå¿ èŠããããŸãã ãã®ãªã¹ãã¯ãã¯ã©ã€ã¢ã³ãã®ãµã€ãã®ããŒãžã§ã³ãšãµãŒããŒäžã®çŸåšã®ããŒãžã§ã³ã®éãã«å¯Ÿå¿ããŠããŸãã åæã«ãã³ã³ãã³ãèªäœã¯ã¯ã©ã€ã¢ã³ãã«éä¿¡ãããŸããã ã³ã³ãã³ããéä¿¡ãããã®ã¯ãã¯ã©ã€ã¢ã³ãåŽãç¹å®ã®ããŒã¿ãèŠæ±ããæ£åžžã«ããŒãããããšãªããžããªã«å°éããå Žåã®ã¿ã§ãã
ã¢ã«ãŽãªãºã ã®å ã®ç»åfullajax.ru/doc/storage/Storage-Algorithm-1.jpg
èæ ®ãããã¢ã«ãŽãªãºã ã«ããããµãŒããŒãžã®æ¥ç¶æ°ãšéä¿¡ãããæ å ±ã®åèšéãåæžãããŸãã ãã®æ¹æ³ã¯ãå€æ°ã®ã³ã³ãã³ããŠãããã§äœ¿çšãããšäŸ¿å©ã§ãã
åã ã®ã³ã³ãã³ããŠããããããŒãžã§ã³ç®¡çããæ¹æ³
ãã®ã¢ã«ãŽãªãºã ã¯ãã³ã³ãã³ãã®ç¹å®ã®åéšåã®äžææ§ãèå¥ããããšã«åºã¥ããŠããŸãã äžçªäžã®è¡ã¯ããµã€ããèµ·åãããšãå€ãã¢ã®ãªã¹ã{keyïŒnovelty identifier}ããµãŒããŒããååŸããããšããããšã§ãã ã¯ã©ã€ã¢ã³ãã¹ã¯ãªããã¯ããªããžããªå ã®äžèŽããæ°èŠèå¥åããã§ãã¯ããŸãã éããããå Žåãããã«ãã£èå¥åã®å€ãå€ãšæŽæ°ãããã³ã³ãã³ãããŒã«å¯Ÿå¿ããããŒã¿ããªããžããªããåé€ãããŸãã ããã«ãªããžããªã«æ°ããèå¥åã®æ°ããå€ãèšé²ãããŸãã åè¿°ã®æ¹æ³ãšåæ§ã«ãã³ã³ãã³ããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããã®ã¯ãã¯ã©ã€ã¢ã³ããç¹å®ã®ããŒã¿ãèŠæ±ããå Žåã®ã¿ã§ãããæ£åžžã«ããŒããããå Žåããªããžããªã«å ¥åãããŸãã
ã¢ã«ãŽãªãºã ã®å ã®ç»åfullajax.ru/doc/storage/Storage-Algorithm-2.png
èæ ®ãããã¢ã«ãŽãªãºã ã«ããããµãŒããŒãžã®æ¥ç¶æ°ãšéä¿¡ãããæ å ±ã®åèšéãåæžãããŸãã ãã®ã¢ã«ãŽãªãºã ã¯å®è£ ãç°¡åã§ããããã®äœ¿çšã¯å°æ°ã®ã³ã³ãã³ããŠãããã§å¹æçã§ãã ã³ã³ãã³ããŠãããã®æ°ãå€ããšãå€ã®ãã¢{keyïŒnovelty identifier}ã®ãªã¹ãã倧ããããŠããã®ã¢ã«ãŽãªãºã ã®æå¹æ§ãäœäžããå¯èœæ§ããããŸãã
Etagã䜿çšããããã®æšæºçãªæ¹æ³
ãã®æ¹æ³ã¯ãã³ã³ãã³ãIDãEtagãµãŒããŒã«éä¿¡ããããšã«åºã¥ããŠããŸãã ã¯ã©ã€ã¢ã³ãã§éä¿¡ãããèå¥åãçŸåšã®ãµãŒããŒèå¥åãšäžèŽããå ŽåããµãŒããŒã¯304 Not modifiedãšå¿çããã¯ã©ã€ã¢ã³ãã¯ã¹ãã¬ãŒãžããããŒã¿ãååŸããŸãã èå¥åãç°ãªãå ŽåããµãŒããŒã¯æ°ããã³ã³ãã³ãã§å¿çããŸãã æ°ããã³ã³ãã³ããæ£åžžã«ã¢ããããŒãããã¯ã©ã€ã¢ã³ãã¯ããªããžããªå ã®å€ãããŒã¿ãæ°ããããŒã¿ã«çœ®ãæããEtagããã«ãã£èå¥åãæžã蟌ã¿ãŸãã
èæ ®ãããã¢ã«ãŽãªãºã ã¯ãéä¿¡ãããæ å ±ã®åèšéã®ã¿ãåæžããŸãã ãã®æ¹æ³ã¯ç°¡åã«å®è£ ã§ããŸããããµãŒããŒãžã®æ¥ç¶æ°ã®ç¹ã§ã¯ã以åã«æ€èšãããã¢ã«ãŽãªãºã ãšæ¯èŒãããšå¹æãäœããªããŸãã
ãã®ã¢ãããŒããŸãã¯ãã®ã¢ãããŒãã®äœ¿çšã®éžæã¯ãç¹å®ã®ç¶æ³ã«äŸåããŸãã
å¿çšäŸ
Flash Storageã®äœ¿çšã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®æ§æããŒã¿ãšãªããžã§ã¯ããä¿åããã ãã§ãªããã¹ã¯ãªãããã¹ã¿ã€ã«ãåçãããã«ã¯ã³ã³ãã³ãèªäœãä¿åããã®ã«ã䟿å©ã§ãã ã¹ãã¬ãŒãžã®é©çšäŸã¯ããã§ã«ç¥ãããŠãããµã€ãfullajax.ruã«å®è£ ãããŠããŸãã ãã®ãµã€ãã§ã¯ãã¯ã©ã€ã¢ã³ãåŽã®ããŒã¿ãæŽæ°ããããã«ãäžèšã®ãåã ã®ã³ã³ãã³ããããŒãžã§ã³ç®¡çããæ¹æ³ããé©çšãããŸãã ã¹ã¯ãªãããšã³ã³ãã³ãã¯ãªããžããªã«ä¿åãããŸãã 次åãã®ãµã€ãã®ããŒãžãèªã¿èŸŒããšãæ°ããããŒãžã§ã³ã®ããŒãžããµãŒããŒã«è¡šç€ºããããŸã§ãªããžããªããååŸãããŸãã
AJAX + Storageãã³ãã«ã䜿çšãããšç¹ã«å¹æçã§ãã Fullajaxã©ã€ãã©ãªã«ã¯ããã©ãã·ã¥ã¹ãã¬ãŒãžãå®è£ ããããã®ã¢ãžã¥ãŒã«ãå«ãŸããŠããŸãã æ¢ã«Fullajaxã©ã€ãã©ãªã䜿çšããŠãããŠãŒã¶ãŒã®å Žåãè¿œå ã®ã¹ã¯ãªãããæ¥ç¶ããã ãã§ååã§ããAJAXïŒdaxãŸãã¯haxã¡ãœããïŒã䜿çšããŠããŒã¿ãèŠæ±ãããšãããŒã¿ã¯èªåçã«ã¹ãã¬ãŒãžã«éãããŸãã ã¯ã©ã€ã¢ã³ãåŽã§ããŒã¿ãæŽæ°ããã¡ã«ããºã ãåŠçããã ãã§ãã
ãã¡ããããã®å®è£ ã ãã§ã¯ãããŸããã ãããŠå€ãã®å Žåãåã ã®æ©èœãéåžžã«äžè¶³ããŠããŸãã ç§ã¯ãããé ããŸãã-Google Gearsã®çµã¿èŸŒã¿DBMSã¯æ¬åœã«æè¯ã®ãªãã·ã§ã³ã§ããããã®ãœãªã¥ãŒã·ã§ã³ã¯éåžžã«æä»çã§ãããWebã¢ããªã±ãŒã·ã§ã³ã®ç¹å¥ãªå Žåã«ã®ã¿å¹æçã«äœ¿çšã§ããŸãã éåžžã®Webãµã€ããå«ã倧èŠæš¡ãªäœ¿çšã§ã¯ãäžèšã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããããBrowserpersistenseãPersistJSãªã©ã®æ±çšãœãªã¥ãŒã·ã§ã³ã䜿çšããã®ãæé©ã§ãã
è³æã®èè ïŒRuslan SinitskyïŒsirusã fullajax.ru ïŒãå ±èè -Alexander LozovyukïŒaleks_raidenã abrdev.com ïŒã