
ExtJSãã¬ãŒã ã¯ãŒã¯ã¯é·ãéã¡ã€ã³ã®ãæ°ã«å
¥ãã®ããŒã«ã«ãªã£ãŠããããã
ExtJSéçºè
ãšãŠãŒã¶ãŒåãã®æåã®äŒè°ã§ã®ä»åŸã®çºè¡šã
楜ãã¿ã«ããŠããŸãã ãã®éããEkstovtsyãã¯ãé·ãéçŽæãããŠãã補åã®ãªãªãŒã¹ã«æºè¶³ããŠãããåªããã©ã€ã»ã³ã¹ã®äžã§ããïŒæ¬åœã«ãããå¿
èŠãšããŠãã人ãã¡ã«ïŒåãã§ãããŸããã ãããŠã
Ext Core 3.0 ãã©ãããã3è¡ç®ã®äžé£ã®ãªãªãŒã¹ããã®æåã®ããã¡
ãåŸ
ã£ãŠããŸãã ïŒåœç¶ãããã¯ãã¡ãããå®å
šãªãã¬ãŒã ã¯ãŒã¯ã®æ°ããããŒãžã§ã³ãç¹ã«æ°ããããžã¥ã¢ã«ã³ã³ããŒãã³ãã®ãªãªãŒã¹ã§ãïŒã Ext Core 3.0ã詳ããèŠãŠã¿ãŸãããã
ãã®ãããExt Coreã¯ãæå°éã®AJAXããŒã«ãå¿
èŠã§ããããããŸã§jQueryãDojoãªã©ã®ããŒã«ãæ©èœããŠããåçŽãªWebãµã€ããšéçºã®äžçã«åå
¥ããããšããè©Šã¿ã§ãã ExtJSã䜿çšãã以åã®éçºã§ã©ã€ãã©ãªå
šäœïŒãŸãã¯ãã®ã«ã¹ã¿ã ã¢ã»ã³ããªïŒã®æ¥ç¶ãå¿
èŠã§ãããæ©èœã®æ°ããŒã»ã³ããã䜿çšãããŠããªãåçŽãªãããžã§ã¯ãã§ã¯åãå
¥ããããªãã£ãå Žåãã¡ã€ã³ã©ã€ãã©ãªãšåãAPIãšæ©èœãåããå®å
šã«æ¢è£œã®ã«ãŒãã«ããããå€ãã®å¿
èŠãªæ©èœãå®è£
ããã®ã«ååã§ãã ã¯ããã¯ããã¡ã€ã³ã©ã€ãã©ãªãšã®é¡äŒŒç¹ã«æ°ä»ããããããŸãããã¡ã€ã³ã©ã€ãã©ãªã¯ãext-coreãext-adapterãããã³ã¡ã€ã³ãã¡ã€ã«ã«åããããŠããŸãã ãã®å Žåãã¢ããã¿ã®æ©èœïŒext-baseã§ããç¬èªã®ã¢ããã¿ã®ã¿ã䜿çšããExt Coreã§ãµãŒãããŒãã£ã®ã¢ããã¿ã䜿çšããããšã¯ã§ããŸããïŒãšã©ã€ãã©ãªã®åºæ¬æ©èœãçµã¿åãããŠãã¹ã¿ã€ã«ãå¿
èŠãšããã«ãã¹ãŠã1ã€ã®ãã¡ã€ã«ã«çµåãããŸããããããŠã£ãžã§ãããšã€ã³ã¿ãŒãã§ãŒã¹èŠçŽ ãæäœããæ¹æ³ããªãããã§ãã ã¯ããExt Coreã¯ãç§ãå©çšã§ããè±å¯ãªæ©äŒããèŠèŠçã³ã³ããŒãã³ãã®ãŠããŒã¯ã§æé«ã®ã·ã¹ãã ãåé€ããåºæ¬çãªæ©èœãšæ¹æ³ã ããæ®ããŠãäœã§ãæ§ç¯ã§ããããã«ããŸãã
ã¡ãªã¿ã«ãããèŠããšãsrcãã£ã¬ã¯ããªã«ã¯ãCoreãæ§æããã³ã³ããŒãã³ãã®å®å
šãªã»ããããããŸããããã¯ããã®å
éšã調ã¹ãã®ã«éåžžã«äŸ¿å©ã§ãã ãã ããéåžžã®ExtJSãã¬ãŒã ã¯ãŒã¯ã䜿çšããå Žåãæ°ããããšã¯äœããããŸããããã©ã€ãã©ãªããããžã§ã¯ãã«æ¥ç¶ããŠããã«äœæ¥ãéå§ã§ããŸãã ãããžã§ã¯ããé
åžãããMITã©ã€ã»ã³ã¹ã§ã¯ãExtJSã§äœ¿çšãããGPLãšã¯å¯Ÿç
§çã«ããœãŒã¹ã³ãŒããéããªããŠããç¬èªã®ã¯ããŒãºãããã³åçšãããžã§ã¯ãã§ã³ãŒãã䜿çšã§ããŸãã ãããã£ãŠãExtJSã®ãã¹ãŠã®æ©èœãæ¬åœã«å¿
èŠãšããªãããããšãã°å°æ¥çã«ãããè¡ãäºå®ãããå Žåã¯ãããã§äœ¿çšã§ããŸãããã§ã«CoreããŒãžã§ã³ã䜿çšããŠãããããžã§ã¯ãã«ä»ã®ã³ã³ããŒãã³ãã®ãµããŒããè¿œå ããããšã¯ã§ããŸããé£ããããšã¯ãããŸããïŒãã ããå
æ¥ãã¹ãããå¿
èŠããããŸãïŒã

ã³ãŒãã®ãµã€ãºãè¯ãå°è±¡ãæ®ããŸã-ã¢ãŒã«ã€ãããã«ãã³ã¢ã¯76 KBã®ã¿ã䜿çšããŸããããã¯ãjQueryãããåªããŠãããšæããŸãããããã°ããŒãžã§ã³ã¯180 KBã»ã©å€§ãããªããŸãããgzipå§çž®ã䜿çšãããšããµã€ãºã¯25 KBã«çž®å°ãããŸããããã¯åæ§ã®æ©èœãåããææ°ã®ã©ã€ãã©ãªã®æè¯ã®ææšã«å¹æµããŸãã
Coreã©ã€ãã©ãªã«ã¯äœãå«ãŸããŠããŸããïŒ
- ããŒãžèŠçŽ ãæäœããããã®ãã¹ãŠã®å¯èœæ§-DOMãCSSãã€ãã³ããšã®çµ±äžäœæ¥ããã©ãŠã¶ã®ãã¥ã¢ã³ã¹ã®é èœãããŒãžèŠçŽ ãã¢ãã¡ãŒã·ã§ã³ãããã³é¡äŒŒã®å€å
žçãªæ©èœãæäœãããšãã«äœ¿çšãããèŠèŠå¹æãæ
åœãããµãã·ã¹ãã ã ç°¡åãªæ€æ»ã®åŸãAPIã¯å®å
šãªExtJSãšæ¯èŒããŠç¹ã«å€æŽãããŠããªãããã«æããããããå€ãã®å Žåãã³ãŒããšã®äºææ§ãä¿èšŒãããŸãã 以äžã¯ãã³ã¢ã«å«ãŸããã¯ã©ã¹ã®ãªã¹ãã§ã-Ext.CompositeElementLiteãExt.DomHelperãExt.DomQueryãExt.ElementãExt.EventManagerãExt.EventObjectãExt.Fxã
- ãã³ãã¬ãŒãã·ã¹ãã ã®ãµããŒãã¯Ext.Templateã§ãããã¡ã€ã³ããŒãžã§ã³ã®ãã匷åã§é«åºŠãªXTemplateãã³ãã¬ãŒãã·ã¹ãã ã移æ€ãããŠããªãã®ã¯æ®å¿µã§ãã ãã ãããã¹ãŠã®åºæ¬æ©èœãå©çšå¯èœã§ããããããµãŒããŒäžãšã»ãŒåãã¹ã¿ã€ã«ã§ã¯ã©ã€ã¢ã³ãäžã§äœæ¥ããããšã¯ããªãå¯èœã§ãïŒSmartyãŸãã¯å¥ã®ãã³ãã¬ãŒããšã³ãžã³ã®ãããªãã®ãæå³ããŸãïŒã
- AJAXãµããŒãã åãã¢ãŒããã¯ãã£ãç¶æããããã«ãCoreã¯ãXMLHTTPRequestãžã®äœã¬ãã«ã®ã¢ã¯ã»ã¹ãæäŸããConnectionã³ã³ããŒãã³ããæäŸãããDataã¢ãžã¥ãŒã«ãå°å
¥ããŸããã æ®å¿µãªãããã³ã¢ã§ã¯ãã®ã³ã³ããŒãã³ããä»ããäœæ¥ã®ã¿ãå©çšå¯èœã§ãããããã¹ã¯ãªããã¿ã°ãŸãã¯iframeãä»ããŠæ¥ç¶ããããã®ãããã·ã¯ãããŸããã ãã ããããã¯ããã»ã©é »ç¹ã«äœ¿çšãããããšã¯ãªããã»ãšãã©ããã§ã«Webã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããŸããã€ãŸããExtJSå
šäœã䜿çšããæ¹ãããããšãæå³ããŸãã åŸæ¥ã®Ajaxã¯ã©ã¹ã¯Connectionã³ã³ããŒãã³ããæ¡åŒµãããªã¯ãšã¹ãåŠçãžã®çµ±åã¢ã¯ã»ã¹ãæäŸããŸãã ç¬èªã®HTTPããããŒãæå®ãããã©ãŒã ãéä¿¡ããããŒã¿ã®éä¿¡æ¹æ³ãåå®çŸ©ããã°ããŒãã«ã€ãã³ããã€ã³ã¿ãŒã»ããã§ããŸãã å¥åŠã§æ²ããããšã¯ãUpadateManagerã³ã³ããŒãã³ãããªãããšã§ããããã«ãããä»»æã®èŠçŽ ã«å¯ŸããŠã1ã€ã®update / loadã¡ãœããã§ajaxãä»ããŠã³ã³ãã³ããå€æŽã§ããŸãã ããããåæ¢ããŸãããããŒãã¡ãœããã¯å©çšå¯èœã§ãããã ããã¹ã¯ãªããã®å®è¡ã«å¶éããããå€ãã®å Žåãããã¯äŸç¶ãšããŠå¶éã§ãããããã€ãã®å·¥å€«ãå¿
èŠã§ãã å人çã«ã¯ããã®ã©ã€ãã©ãªã«åŸæ¥ã®UpdateManagerãè¿œå ããããšããŸãã
- JavaScriptåºæ¬ã¯ã©ã¹ã®æ¡åŒµã JSèªäœã¯éåžžã«æè»ãªèšèªã§ãããšææããéçºè
ã¯äžéšã®çµã¿èŸŒã¿ãªããžã§ã¯ãã®åºæ¬æ©èœãè£å®ããã³æ¡åŒµããŸãããããã§ãèšèªèªäœãžã®åœ±é¿ãæå°éã«æããããšããŠãããããããšãã°è€æ°ã®ã©ã€ãã©ãªãåæã«äœ¿çšããããšãå¯èœã§ãã é«åºŠãªæ©èœã®äžã§ããé¢æ°ã®æ¡åŒµæ©èœ-createCallbackãcreateDelegateããã³deferã匷調ãã䟡å€ããããŸããèŠçŽ ã®å€ã«ãã£ãŠã€ã³ããã¯ã¹ã決å®ããæ¹æ³ãšãã®åé€ã¯ãArrayã¯ã©ã¹ã®æ©èœã«è¿œå ãããŸãã æååããªããã£ãã¯ãåºæ¬çã«ãã®ãããªäœã¬ãã«ã®ãã³ãã¬ãŒããšã³ãžã³ã§ããformaté¢æ°ã«ãã£ãŠæ¡åŒµãããŸãïŒãã®å ŽåãAjax.NETããŒãžã§äœ¿çšãããšãã®ã¡ãœããã競åããå¯èœæ§ããããšããç¹å¥ãªæ³šæããããŸãã ããã¯æããã«ã©ã€ãã©ãªã§ã ïŒ
- Extã°ããŒãã«ã¯ã©ã¹ã«ã«ãã»ã«åãããäž»ãªæ©èœïŒãã©ãããã©ãŒã ãšãã©ãŠã¶ãŒã®å®çŸ©ïŒãå«ããŠãŒãã£ãªãã£ã¡ãœããã¯ãURLããŒã¿ãšJSONããŒã¿ãåŠçãããããããéããŠé
åãåŠçããå€æ°ã¿ã€ãã®å®çŸ©ãåŠçããŸãã
- ã¿ã€ããŒãšå®æçãªã€ãã³ããæäœããŸãã ããŸã説æãããŠããªããéåžžã«æçšãªã³ã³ããŒãã³ãã¯ãå®æçãªããŒã¿åŠçïŒæå®ãããé¢æ°ã®èµ·åïŒã®ããã®TaskRunnerã¿ã€ããŒã®æ¡åŒµããŒãžã§ã³ã§ããé
延ã¿ã¹ã¯ïŒDelayedTaskïŒã§ãã æ£çŽãªãšãããç§ã¯ãããã®æ©äŒããããžã§ã¯ãã§é »ç¹ã«äœ¿çšããŠããã®ã§ããããã®æ©äŒã«éåžžã«æºè¶³ããŠããŸãã
- ãããŠæåŸã«ããã¹ãŠã®åŒ·åãªãªããžã§ã¯ãæåã€ã³ãã©ã¹ãã©ã¯ãã£ãã³ã¢ã«å«ãŸããŠãããããã«åºã¥ããŠãå®éã«ã¯ãã¬ãŒã ã¯ãŒã¯å
šäœãæ§ç¯ãããŸãã ç¬èªã®ã¯ã©ã¹ãèªç±ã«äœæããç¶æ¿ã䜿çšããŠïŒã©ã€ãã©ãªã®èŠ³ç¹ãã-æ¡åŒµïŒããªãŒããŒã©ã€ã/ãªãŒããŒã©ã€ãããããã¿ã€ããæäœã§ããŸãã ããã«ã¯ãæãäžè¬çã«äœ¿çšããããã¿ãŒã³ã®ããã€ã-SingltonãObservableã®å®è£
ãå«ãŸããŸãã ããã«ãåå空éã®ãµããŒãã
å®éãExtJSãç§ãã¡ã«åã°ããŠããã®ã¯ããã ãã§ãã ã¡ã€ã³ãã¬ãŒã ã¯ãŒã¯ã§è²ã£ãããããã®æ©èœã®äžéšãæ¬ ããŠãããšæããããšããããŸãããExt Coreãšã¡ã€ã³ãã¬ãŒã ã¯ãŒã¯ã®ã¹ã³ãŒããæ ¹æ¬çã«ç°ãªãããšãå¿ããªãã§ãã ããã ããããããšãã°ãWebã¢ããªã±ãŒã·ã§ã³ãäœæããŠããå Žåã蚪åè
ã«ã¡ã¬ãã€ãã®ExtJSãããŠã³ããŒããããããšãªããåãã©ã€ãã©ãªã§ãµã€ããäœæããããšã¯éåžžã«è«ççã§ãã代ããã«Coreã䜿çšããã ãã§ãéçºè
ã¯åãã¬ãŒãã³ã°ãå¿
èŠãšããŸããããŸãããããžã§ã¯ããããã«æ¡å€§ããŠããã³ãŒããæžãæããå¿
èŠã¯ãããŸããã åºæ¬çãªããã³ããšã³ãã§ã¯è»œéã©ã€ãã©ãªã䜿çšãããŠã£ãžã§ãããã³ã³ããŒãã³ãã«çŽé¢ããŠããŒã¿ãåŠçããããã®éç«åšã䜿çšãããšãCoreã¯éçºãšéçºã®æ¶ãæ©ã«éããªãããã§ãã ãããŠãããã§ã¯ãDojoã§è¡ããããã®ãšåæ§ã«ãæ°ããã³ã³ããŒãã³ãã®åçããŒãã®å®è£
ã¯éåžžã«äŸ¿å©ã§ãã
ã³ã¢ã¯ããã¬ãŒã ã¯ãŒã¯å
šäœã®æ©èœã®åºæ¬çãªç 究ã«ãæé©ã§ããã¯ã©ã¹ãšãã®è€éãã¯ããã»ã©å€ããªããããåå¿è
ã®éçºè
ã¯åŸã
ã«ç解ãããã§ã«å€§ããªãããžã§ã¯ãã§äœæ¥ãé²ããããšãã§ããããã§ãã äžéšã®äœ¿ãæ
£ããããŒã«ãäžè¶³ããŠãããšãæåã¯ããã®éçºè
ãæ··ä¹±ããããããããŸããããããã«æ
£ããŠããŸããçŸåšã®ããŒãžã§ã³ã®ã¹ããŒã¿ã¹ã¯ããŒã¿çã«éããŸããã