![](https://habrastorage.org/getpro/habr/olpictures/d14/8f1/de5/d148f1de56a701a9ea6f59a4b4e0a018.jpg)
ãã¹ãŠã®èªè ãžã®æšæ¶ã ãããŠãäœãèµ·ãã£ãã®ãã¯ãå€ãã®äººïŒãŸãã¯å°ãªããšã誰ãïŒãåŸ ã¡æãã§ããããšã§ããã ã¯ãã ã€ãã« AJAX Webã¢ããªã±ãŒã·ã§ã³Dojo Toolkitãéçºããããã®æã匷åã§æ¬åœã«ãWeb 2ãŒããã©ã€ãã©ãªã®ãªãªãŒã¹ããŒãžã§ã³ããªãªãŒã¹ããŸããã dojoããã±ãŒãžã«éå®ããå Žåãšdojoxãšdijitãããå Žåãé€ãããã¹ãŠã®æ©èœã®å°ãªããšã10ïŒ ã䜿çšããéåžžã®ãµã€ãã¯ã»ãšãã©æ³åã§ããªããããã¢ããªã±ãŒã·ã§ã³éçºçšã§ããããŒãžã§ã³0.4.3ã®ã¢ã¯ãã£ããªéçºäžïŒããããã®ãããªå€ããåç³ã§ãããããæç¹ã§ã¯ãææ°ããŒãžã§ã³ãããããã«åªããŠãããç°¡åã§ãïŒãDojoã®èŠèŠçãªéšåã¯ããŸãããŸããããŸããã§ããã ããã«ãé¢ãããã ExtJSã¯æ°æ¡é«ããã®ã§ãããä»ã®ãšããç座ãã転èŠããã代æ¿æ段ã¯ãããŸããã
ããããç§ãã¡ã®ããžãã¹ã«æ»ããŸãããã éçºãšã¢ãŒããã¯ãã£ã®å€æŽãšããããªãé·ãé²åã®éããã©ã£ãDojoã¯ãæçµçã«å®å®ããéçºæ®µéãéå§ããŸããããã®æ®µéã§ã¯ããããžã§ã¯ãã®æè¡ãã©ãããã©ãŒã ãšããŠã ãã§ãªãããããå®å šã«äœ¿çšããããšããã§ã«å¯èœã§ãã ããŒãžã§ã³1.1ã§ã¯å€ãã®å€æŽãšæ¹åãè¡ãããŠããŸããããã®ãªãªãŒã¹ãããŒã«ãšããŠæ€èšããããšããå§ãããŸãã ããã§ãå¹³åçãªéçºè ã«ãšã£ãŠæ°ãããŠèå³æ·±ããã®ã¯äœã§ããïŒ èããŠã¿ãŠãã ããã
Dojoããã±ãŒãž ã å€ãã®äžè¬çãªæ¹åãAPIãšããã¥ã¡ã³ãã®æŽæ°ãCSS /ãã³ãã¬ãŒãã®å€æŽãšãã°ä¿®æ£ã以åã®ããŒãžã§ã³ããæ®äœãšäŸåé¢ä¿ãåé€ããããã®æ¹åãšã³ãŒãã®å€æŽïŒã¢ãŒããã¯ãã£ãšAPIã¯æ°åå€æŽãããŸããããäžéšã®ã¢ãžã¥ãŒã«ã¯ä»¥åã®ããŒãžã§ã³ãã»ãšãã©ãªããŸãŸã§ããå€æŽïŒæ°ããAPIæ§é ããµããŒãããªãããšãå«ãïŒã å€èšèªã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãã³ãã¬ãŒããšèšèªãªãœãŒã¹ã®æäœãæ¹åãããŸããã å€ãã®CSSã¹ã¿ã€ã«ãå€æŽãããŠãããããdijitã䜿çšããŠãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæ§ç¯ããå Žåã¯ãã³ãŒãã®å€æŽã確èªããå¿ èŠããããŸãã
0.4.xãã©ã³ãã®éåžžã«åæã®ãªãªãŒã¹ãšææ°ã®1.1ã®çµã¿åãããŸã§ãDojoã®è€æ°ã®ããŒãžã§ã³ã1ããŒãžã§åŠçãããšããèå³æ·±ãæ©äŒãïŒç§ãç解ããŠããããã«ïŒåæã«ãããŸããã ãã¡ãããããã¯éåžžã«ç¹æ®ãªæ©èœã§ãããå€ãã®æ©èœãšèœãšãç©ŽããããŸããããããžã§ã¯ãã®æ ¹åºã«ããã¢ãŒããã¯ãã£ãšæŠå¿µã®æè»æ§ãšç¬ç«æ§ãéæ¥çã«èšŒæããŠããŸãã ãã®æ©èœã®è©³çŽ°ã«ã€ããŠã¯ãDojo bookã»ã¯ã·ã§ã³ãã芧ãã ããã
ã©ã€ãã©ãªãŒãããŒãããããã»ã¹ãå°ãå€æŽãããŸãã-æåããã§ã¯ãªããã¡ã€ã³ããŒãžã®ããŒãåŸã«DojoãããŒãããããã«æ§æãæå®ã§ããããã«ãªããŸããã 以åã¯ãè€éãªã¢ããªã±ãŒã·ã§ã³ã®å ŽåãããŸããŸãªããŠã³ããŒãã€ã³ãžã±ãŒã¿ãšãã¹ã¯ãèšå®ããå¿ èŠããããŸããããåºæ¬çã«ã¯Webã¢ããªã±ãŒã·ã§ã³ã¯ã»ãã·ã§ã³å šäœã§1åããèªã¿èŸŒãŸããªããããããŠã³ããŒããåŸ ã€æ¹ãè¯ãã§ãããã ããããããã«äœãããããDojoããŠã³ããŒãã®ãªãœãŒã¹æ¶è²»ã¯ãã°ãã°éåžžã«æ·±å»ã§ãããå°ãªããšãç§ã¯1幎è¿ãèŠç¶ããDojoãšExtJSã®æã䜿çšãã倧èŠæš¡ãªãªã³ã©ã€ã³ãããžã§ã¯ããéçºããŸããã ãããæé©åã§ããããã«ãªã£ãããã責任ãæã£ãŠèšèšã«ã¢ãããŒããã䜿çšããã¢ãžã¥ãŒã«ã®æ°ãå¿ èŠæå°éã«æžãããšãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããå°ãªããšãåã ã®ã³ã³ããŒãã³ããããŒãããããã»ã¹ãããã»ã©ç®ç«ããªããªããŸãã
ãµãŒããŒã«ããŒã¿ã転éããããã®çµã¿èŸŒã¿ã³ã³ããŒãã³ãdojo.xhrã¯ããã€ãã£ãXMLHttpRequestã®æœè±¡åãšããŠæ©èœããå€§å¹ ã«æŽæ°ãããŠæ©èœãæ¡åŒµãããŠããŸãã çŸåšãGET / POST以å€ã®ã¡ãœããïŒPUT / DELETEãªã©ïŒã®å®è£ ããããŸãããå¿ èŠãªã¯ãšãªãèªåã§å®è£ ããŠã¢ãžã¥ãŒã«ãæ¡åŒµããããšãã§ããŸãã æã人æ°ãããèå³æ·±ããªã¯ãšã¹ãã¯ãæå®ãããããŒãžã®æŽæ°ã確èªããHEADã§ããããã«æãããŸãã åžžã«æã匷åã§æ©èœçãªDojoã§ãã£ãã®ã¯ãã®ã¢ãžã¥ãŒã«ã§ããããä»ã§ã¯ããã«æ¡åŒµãããŠããŸãïŒæåã®ããŒãžã§ã³ã§ã¯ããå€ãã®ä»£æ¿ãã©ã³ã¹ããŒãããããŸãããããã€ãã£ããªããžã§ã¯ããiframeãããã³ã¹ã¯ãªããã¿ã°ã®ã¿ãååšããããšãèŠããŠããŸãïŒã å¥åŠãªããšã«ãXMLHttpRequestãªããžã§ã¯ããä»ããŠéä¿¡ããããªã¯ãšã¹ãã«X-Requested-WithããããŒãæçµçã«æ£ããæ¿å ¥ãããããã«ãªããŸããã .ru-çµå±ã®ãšãããã³ãã¥ããã£ã¯ã©ãã«ãã£ãã®ãããšã«ããããªãªãŒã¹ãåŸ ã€å¿ èŠããããŸããã
ãã©ãŠã¶ãŒã®ãã£ãã·ã¥ã䜿çšããäœæ¥ãæ¹åãããçµã¿èŸŒã¿ã®ãã³ãã¬ãŒãã䜿çšãããšãã«ã䜿çšã§ããããã«ãªããŸããïŒãŸãã¯ãã®éãç¡å¹ïŒã
DOMããŒãã®å±æ§ãæäœããåã¯ç©æ¥µçã«å€æŽãããCSSã¹ã¿ã€ã«ã®æäœã¯çµã¿èŸŒã¿ã®dojo.styleã¯ã©ã¹ãéããŠç°¡çŽ åãããŸãããããã¯éçºè ã®ãããã§ãã dojo.queryã¢ãžã¥ãŒã«ãæ¹è¯ãããŸãããããã«ãããDOMããªãŒã®åã ã®ããŒããšãã©ã³ãå šäœãç°¡åãªæ¹æ³ã§ç §äŒããããšãå¯èœã«ãªããŸããã
ã»ãšãã©ã®Webã©ã€ãã©ãªã«åºæã®æ©èœã§ããã¢ãã¡ãŒã·ã§ã³ã¢ãžã¥ãŒã«ã¯å€§å¹ ã«å€æŽãããŠãããéåžžã«å€ãã®å€æŽãšæ¹åããããŸããã¢ãã¡ãŒã·ã§ã³ã¢ã«ãŽãªãºã ãšãã¯ããã¯ã®äžéšã¯ãããããããŸããŸãªãšãã§ã¯ããšåçã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åããããã«Flashãã転éããããšèšãããŠããŸãã çç£æ§ãšã¬ã³ããªã³ã°ãåäžãããããšãçŽæããŸãïŒæå°æéã1ç§ãã350ããªç§ã«ççž®ããããããããããåæç»ã®æå°ããã£ãã¯ãã«ã€ããŠã話ããŸãïŒã ããã«ã¯ã dojo.fxãªã©ãããŸããŸãªãšãã§ã¯ããšã°ã©ãã£ãã¯ã¹ãæ åœããä»ã®ã¢ãžã¥ãŒã«ã®å€æŽãå«ãŸããŸãã
ãããŠæåŸã«ãWebæ¥çã®æ°ãããã¬ã³ãã«åŸã£ãŠãDojoã¯Adobe AIRãã©ãããã©ãŒã ã®ãã¹ãŠã®æ©èœã®ãµããŒããåããŸãããããã¯ãç¹ã«Dojoã«æ¢ã«ååšããæ©äŒïŒãã®ã»ãšãã©ãå®éšçããã³é©æ°çãªDojoxã¢ãžã¥ãŒã«ïŒã
Dijitããã±ãŒãž ã ãã®ããã±ãŒãžã«ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãšããŸããŸãªãã©ãŒã ãäœæããããã®èŠèŠèŠçŽ ãšãŠã£ãžã§ãããå«ãŸããŠããŸãã ãã®ãªãªãŒã¹ã§ã¯ãäž»ã«ããã±ãŒãžã«å粧åã®å€æŽãè¡ãããæ°ããããŒããšããã€ãã®ãŠã£ãžã§ãããè¿œå ãããŸãã-SimpleTextArea ãæ¡åŒµäžå¯ã®ã·ã³ãã«ããã¹ããã£ãŒã«ããè€æ°ã®èŠçŽ ãäžåºŠã«éžæã§ããè€æ°éžæãŠã£ãžã§ããã æ°ããã¿ã€ãã®ã¬ã€ã¢ãŠããç»å ŽããŸãã-BorderContainerã¯ãSplitContainer / LayoutContainerã®å»æ¢ããããªãã·ã§ã³ã«ä»£ãããã®ã§ã ããªãŒãæäœããããã®ã¢ãžã¥ãŒã«ïŒ Tree ïŒã§ãããä»ãããã¯ãã®ããã§ãã£ãŠã¯ãªããŸããã
Dojoxããã±ãŒãž ã ããã§ã¯ã以åã¯ã»ãšãã©å®è£ ã§ããªãã£ãïŒãŸãã¯å®è£ ã§ããã¯ãã®ããããããèªäœãéåžžã«è€éã§èªæã§ã¯ãªãããã«æããïŒäž»èŠãªé©æ°çãªã¢ãžã¥ãŒã«ãšæ©èœãéããããŠããŸãã å€æŽç¹ã®äžã§ãDTLã¢ãžã¥ãŒã«ã®å€æŽç¹ã匷調ãã䟡å€ããããŸãããã³ãã¬ãŒãã§ãfor / ifå¶åŸ¡æ§é ã䜿çšããŠãŠã£ãžã§ããããã®ä»ã®èŠçŽ ã宣èšã§ããŸãã Webæç»ããŒã«ã®äŸã§äœ¿çšãããŠããæ¡åŒµã¢ãã¡ãŒã·ã§ã³ããã³ãšãã§ã¯ãã¢ãžã¥ãŒã«dojox.gfx ïŒAJAX / VML / SVGäžã®ãã¯ã¿ãŒãããã¯ãŒãããã©ãŠã¶ãŒã§çŽæ¥äœ¿çšãããã«ããŠãŒã¶ãŒã®äœæ¥ãå¯èœïŒãæŽæ°ãããŸããã ããŸããŸãªã°ã©ããšãã£ãŒãdojox.chartãæç»ããã¢ãžã¥ãŒã«ãæŽæ°ãããŸãã ãããã¯ãå€ãã®å ŽåããµãŒããŒå®è£ ãŸãã¯Googleã«é¢ããWebãµãŒãã¹ã®ããããã眮ãæããã®ã«ååãªæ©èœã§ãã
æå·åããã³ã³ãŒãã£ã³ã°ã¢ãžã¥ãŒã«ïŒbase64ãlight base64ãascii85ã¢ã«ãŽãªãºã ïŒã¯1ã€ã«çµ±åããã次ã®ããŒãžã§ã³ã§ã¯å¥ã®æå·åã¢ãžã¥ãŒã«ãåé€ãããŸãã ãšããã§ãæ å ±ãã¢ãŒã«ã€ãããããã®ã¢ãžã¥ãŒã«ãç»å ŽãããããŸã§ã«2ã€ã®ã¢ã«ãŽãªãºã ãLZWãšSplayããµããŒãããŠããŸãã
å€ãã®äººã«ãšã£ãŠå¬ããããšã«ãããŸããŸãªããã°ã©ãã³ã°èšèªã®ã³ãŒããããã¯å ã§æ§æã匷調衚瀺ããããã®çµã¿èŸŒã¿ã®åŒ·èª¿è¡šç€ºã¢ãžã¥ãŒã«ãç»å ŽããŸããã éçºè ãç¹åããCMSã«çŠç¹ãåœãŠããããžã§ã¯ããäœæããããšãå¯èœã«ãªããŸãããã³ãŒãã䜿çšããŠèšäºãäœæãããšãç®ç«ã€ããã«ãªããŸãã ã¯ããããã«å€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸããã以åã¯ãµãŒãããŒãã£ãœãªã¥ãŒã·ã§ã³ãé©çšããå¿ èŠããããŸãããå€ãã®å ŽåããµãŒããŒãœãªã¥ãŒã·ã§ã³ã®ã¿ã§ããããçŸåšã¯çµã¿èŸŒã¿ã®æ©èœã§ãã
ã¹ãã¢ã¢ãžã¥ãŒã«ãæŽæ°ãããŸãããããã«ãããFlickrãPicasaãªã©ã®ãªã¢ãŒããµãŒãã¹ãå«ããããŒã¿ãä¿åããã³è¡šç€ºããããŸããŸãªæ¹æ³ããæœè±¡åããçµ±äžããããšãã§ããŸãã ããã«ãAtomãOPMLãXMLãHtmpTableãªã©ã®ããŒã¿ãæäœã§ããŸãã
å人çã«ã¯ãæãäºæ³ãããå¿ èŠãªã¢ãžã¥ãŒã«ã匷調ããŸã- ã¹ãã¬ãŒãž ãæçµçã«ããŒãžã§ã³1.1ã«å®å šã«æžãçŽãããã¯ã©ã€ã¢ã³ãã«æ å ±ãä¿åããå©çšå¯èœãªæ段ã§ééçãªäœæ¥ããµããŒãããŸã-ãã©ã°ã€ã³Flashãªããžã§ã¯ããšAdobeAIRã¹ãã¬ãŒãžã®äž¡æ¹ïŒãã¡ã€ã«ãšä¿è·ãããŠããïŒãGoogle Gearsããã³HTML 5ã¹ãã¬ãŒãžã ããã¯æã匷åã§å¿ èŠãªæ©èœã§ãããå€ãã®éçºè ãæ¬åœã«æåŸ ããŠãããã®ã§ãããä»ã®ãã¹ãŠã®ã©ã€ãã©ãªã®äžã§å®éã®ç«¶äºçžæã¯ããŸããã
Dojoxããã±ãŒãžã«ã¯ãããã«å€ãã®èšäºãæžãããšãã§ããããããŠå¿ èŠãšããå€ãã®ãŠããŒã¯ãªã¢ãžã¥ãŒã«ããŸã ãããŸãã èšäºã®æåŸã§ã¯ã1ã€ã®ã¢ãžã¥ãŒã«ã®ã¿ã匷調ããŸããããã¯ã以åã®ãªãªãŒã¹ãæãåºãéããä»ããç»å ŽããŠããŸããããå ¬åŒã®ãã¬ã¹ãªãªãŒã¹ã§ã¯èšåããŠããŸããã ããã¯åæã¢ãžã¥ãŒã«ïŒ dojox.analytics ïŒã§ãããããã«ãããããŒãžäžã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ïŒåãããã®ä»ã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®è¿œè·¡ãªã©ïŒã®ã远跡ããæè»ã«æ§æã§ããŸãã ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã«é¢ããæ å ±ïŒããã³éã¢ã¯ãã£ãïŒããµãŒããŒã«éä¿¡ããããŠãŒã¶ãŒã®è¡åãåæããã¢ããªã±ãŒã·ã§ã³ã§ã®åœŒã®äœæ¥ãŸãã¯éã¢ã¯ãã£ããæ€åºãããŠãŒã¶ãŒãWebäžã§äœãã©ã®ããã«è¡ãããæ£ç¢ºã«ç¥ãå¿ èŠããããŠãŒã¶ããªãã£ãã¹ãã·ã¹ãã ããã³ãã®ä»ã®ãœãªã¥ãŒã·ã§ã³ãäœæããããã«äœ¿çšã§ããŸã-ããŒãžã
ããã ãã§ããå°ãªããšãããã®åŒ·åã§çŸããã©ã€ãã©ãªãŒã«é¢å¿ã瀺ãå§ããããšãé¡ã£ãŠããŸãã ãã®å Žåã¯ã httpïŒ//dojotoolkit.orgã«ã¢ã¯ã»ã¹ããŠãæ©èœãäŸãããã³ããã¥ã¡ã³ãã«ç²Ÿéã ãé åžããã±ãŒãžãããŠã³ããŒãããŠã ...
PS å人ããã°ããã®ã¯ãã¹ãã¹ãã ãªãªãžãã«ã¯ãã¡ãïŒhttp://abrdev.com/?p=292