ã·ã¹ãã ã¬ãã«ã®ã¢ããªã±ãŒã·ã§ã³ã§ç§ãå®è£ ããã¡ãœããã«ç²Ÿéããããšãææ¡ããŸãã
- DOMããªãŒãåæ§ç¯ãã代ããã«CSSãšã¯ã©ã¹ã¹ã€ããã³ã°ã䜿çšãã
- èŠçŽ ãµã³ãã«ã®ãŠããã¿ã¹ãã£ãã·ã¥ïŒ $ïŒ 'div.active_part span.highlighter'ïŒ ïŒãã¢ãããã¯å€æŽæäœïŒDOMããªãŒã®å€§ããªã»ã¯ã·ã§ã³ãåäœæãã代ããã«ãäžè¬çãªåæç»ã®ä»£ããã«ïŒ
- ç¶æ å€æŽã®æžã蟌ã¿äžã«DOMèªã¿åããæå°éã«æãã
- èŠçŽ ã®ãµã€ãºãšé 眮ã®ãã£ãã·ã¥ïŒä»ã®å€æŽãããå Žåã«ãããã®å€ãèªã¿åããšãã®äžå¿ èŠãªèšç®ããç¯çŽããŸããããªãŒã®å€ãã®éšåãå€æŽããªããèªã¿åããšãçç£æ§ã«æªåœ±é¿ããããŸãïŒ
- DOMã§è¡ãããã«å¿ èŠãªå€æŽã®æ£ç¢ºã§ãé·æçã§ãªãèç©
- ã³ã¬ã¯ã·ã§ã³å šäœãDOMãããã¿ããããŠåã¢ã¿ããïŒããã³ãªã¹ãå šäœãåæç»ïŒãã代ããã«ãäžåºŠã«å€æŽã³ã¬ã¯ã·ã§ã³ã®äžéšãã¢ã¿ããããŸãïŒããšãã°ã3ã€ã®æ°ããèŠçŽ ããªã¹ãã®äžå€®ã«æ¿å ¥ãããå Žåã createDocumentFragment ïŒã
- ããã°ã¬ãã·ãéåæã¬ã³ããªã³ã°ïŒããããªè©³çŽ°ã§ç»åãããã«æç»ããããã®åŸããã詳现ã«è¡šç€º
- ããŒãã®ã¯ããŒãã³ã°ïŒãã¿ãŒãã³ã°ã®äžéšãšããŠïŒ
- DOMãã³ãã¬ãŒãã®è§£æçµæã®ãã£ãã·ã¥ã®ãã£ãã·ã¥ãšäœ¿çš
ãäžåºŠã«ã³ã¬ã¯ã·ã§ã³ãå€æŽããéšåãæ·»ä»ãã...ããšããã¿ã€ãã«ã®éšåã®ç»å
DOMããªãŒãåæ§ç¯ãã代ããã«CSSãšã¯ã©ã¹ã¹ã€ããã³ã°ã䜿çšãã
ååãšããŠãèŠèŠéšåã®æ倧å€ãCSSã«è»¢éãããã¯ã©ã¹ãåãæ¿ããããšã§è¡šç€ºãå€æŽãããŸãïŒããšãã°ãèŠçŽ ãé衚瀺ã«ããã ãã§ããŒããåé€/äœæãã代ããã«ãã¯ã©ã¹.hidden {displayïŒnone}ãåãæ¿ããïŒã åæã«ããã®ååã䜿çšãããšãããã¥ã¡ã³ãå ã®é床ã®æ°ã®DOMããŒãã§ãã©ãŠã¶ãéè² è·ã«ããªãããã«ããããšãã§ããŸãã
ãã®äŸã§ã¯ãå®å šãªãªã¹ãã衚瀺ããããã«ãããŒãã®1ã€ã¯åã«want_more_songsã¯ã©ã¹ãåãæ¿ããŸã
ããŒããµã³ãã«ã®ãŠããã¿ã¹ãã£ãã·ã¥ãã¢ãããã¯ãªå€æŽ
ã¢ãããã¯ãªå€æŽãšã¯ãDOMæ§é ã®æ°ãã倧ããªéšåãå®å šã«äœãçŽããå解æããŠæ§ç¯ããã®ã§ã¯ãªããæ¢åã®DOMã®ç¹å®ã®éšåãå€æŽãããšããååãæå³ããŸãã ããã«ãæ§é ã®å€æŽã¯ãå¯èœãªéãå ·äœçãªç¶æ ã®å€æŽã«é¢é£ä»ããããŠããŸãã ã¯ã©ã¹ãå€æŽããå¿ èŠãããå Žåã¯ã $ïŒ 'ãTarget_node'ïŒãAddClassïŒ 'active'ïŒ ãããã¹ãã®å Žåã¯$ïŒ 'ãTarget_node'ïŒãTextïŒ 'place an order'ïŒã䜿çšããŠå€æŽããŸãã åãããšãDOMã®å±æ§ããã®ä»ã®éšåã«ãåœãŠã¯ãŸããŸãã
ãããã¯æåã®æé©åã§ãããç§ã䜿çšããæåã®ååã®1ã€ã§ãïŒããã«é¢é£ããŠãç¹ã«underscorejs.templateã®ã¹ã¿ã€ã«ã®ãã³ãã¬ãŒããšã³ãžã³ãæåŠããŸããïŒã ã¢ãã«ã®ç¶æ ãå€æŽãããšãã«ãã¥ãŒå šäœãåæç»ããã®ã§ã¯ãªããäžéšã®ã¿ãå€æŽããããšã«ãªããŸãã 圌ãã«ãããšã .innerHTML ïŒãŸãã¯jqueryïŒ...ïŒãHtmlïŒïŒ ïŒã䜿çšããã¹ãã§ã¯ãªããããŒããµã³ãã«ïŒã»ã¬ã¯ã¿ãŒïŒããã£ãã·ã¥ããå¿ èŠããããŸãã äžéšãå€æŽããå¿ èŠãããå Žåã¯ãæ¯åéžæããã®ã§ã¯ãªãããã£ãã·ã¥ããç®çã®ããŒããååŸããŸãã
ãããã®2ã€ã®ããšã¯ãã®ããã«æŽçãããŠããŸãïŒã³ãŒãã¯MVCã«åŸã£ãŠåå²ãããã¢ãã«ãç¶æ ãå€æŽãããšãå€æŽã«é¢ããæ å ±ããã¥ãŒã«éä¿¡ãããå€æŽãããç¶æ ã«é¢é£ä»ããããæ©èœããã¥ãŒã§ããªã¬ãŒãããŸãã ãã®é¢æ°ã¯ããµã³ãã«ã®ãã£ãã·ã¥ã䜿çšããŸãã
ããšãã°ãã¢ãã«ã«ã¯æ¬¡ã®ç¶æ ããããŸããã
{ artist: "The Killers", track: null }
ãã®ã³ãŒãã§ããããå€æŽããŸããïŒ
track_model.updateState('track', "When You Were Young");
æ¡ä»¶ã¯æ¬¡ã®ããã«ãªããŸããã
{ artist: "The Killers", track: "When You Were Young" }
ãã©ãã¯ãã£ãŒã«ãã®ç¶æ ãå€æŽãããŸããããããã®å€æŽãã¢ãã«ãããã¥ãŒã«éä¿¡ããŸããã
ã¢ãã¡ãŒã·ã§ã³ã3ãã¬ãŒã ã ã¢ãã«ã®ãã©ãã¯ã®ç¶æ ãå€æŽããŸãã2ã€ã®ãã¥ãŒãå€æŽã«å³åº§ã«å¿çããŸã
Viewã§ã¯ãç¹å®ã®ç¶æ ã®å€æŽã«å¿çããŠDOMã®å€æŽãçæããæ©èœãã¢ã¯ãã£ãã«ãªããŸãããã®å Žåã次ã®ã³ãŒããæ©èœããŸãã
'stch-track': function(new_state, old_state){ this.container .find('.song-track-name') .text(new_state) .toggleClass('hidden', !new_state); }
ïŒ 'stch-' + state_nameã®åœ¢åŒã®ã¡ãœããã®ååã«æ³šæãæããŸãããã®å Žåã¯'stch-track' ïŒ;
ãã®ãããç¹å®ã®å€æŽã¯DOMã®ç¹å®ã®éšåã«é¢é£ä»ããããŠããŸã
ããã§ããã£ãã·ã¥ã«æ³šæããŸãããã å€æŽãããã³ã«éžæããå ŽåïŒ this.container.findïŒ 'ãSong-track-name'ïŒ ïŒãããã¯ããã©ãŒãã³ã¹ã«æªåœ±é¿ãäžãããããæ¯åéžæããªãããã«ãããã«æ¬¡ã®ã³ãŒãã«å€æŽããŸãã
'stch-track': function(new_state, old_state){ if (!this.track_name_node){ this.track_name_node = this.container.find('.song-track-name'); // } this.track_name_node.text(new_state).toggleClass('hidden', !new_state); }
ïŒ ã¢ãããã¯ãªå€æŽã®ååã«åŸã£ãŠãã³ãŒããæžãå§ããã°ããã®ãšãã«ãµã³ãã«ããã£ãã·ã¥ããŸãã ïŒ
åŸã§ããã³ãã¬ãŒããšã³ãžã³ã®äœæãšäœ¿çšãéå§ãããšããæåã¢ãŒãã§DOMãå€æŽããå¿ èŠãããå Žåã®ããã«ããã£ã¬ã¯ãã£ãïŒ<span pv-anchor = "track_name_con" class = "song-track-name"> </ span >ïŒ ãããŒãããªããžããªã«ãã£ãã·ã¥ããå¿ èŠãããããšã瀺ããŸããæåã§ã¢ã¯ã»ã¹ãããããïŒ æ¯ååœä»€ã³ãŒãthis.container.findïŒ 'ãsong-track-name'ïŒãæžã代ããã«ïŒã ãããã£ãŠã次ã®ãããªå€æŽã«å¯Ÿããåå¿ãæžãæããããšãã§ããŸãã
'stch-track': function(new_state, old_state){ this.tpl.ancs['track_name_con'].text(new_state).toggleClass('hidden', !new_state); }
ãã®ãããªåçŽãªå€æŽïŒããã¹ããŸãã¯ã¯ã©ã¹ããŸãã¯ä»ã®å±æ§ãç¶æ ã«äŸåããå ŽåïŒã¯éåžžãä»ã®ãã£ã¬ã¯ãã£ãã«ãã£ãŠèšè¿°ããã pv-anchorãã£ã¬ã¯ãã£ãã¯ãããè€éãªå€æŽïŒããšãã°ãä»ã®ããŒãã®å Žæããµã€ãºã«åœ±é¿ããïŒãè€éãªçžäºäœçšäžã®ã€ãã³ãã®ãã³ã°ã«äœ¿çšãããŸããŸããDOMãæåã§å€æŽããããã®ä»ã®å Žåã
ç¶æ å€æŽã®æžã蟌ã¿äžã«DOMèªã¿åããæå°éã«æãã
ãã©ãŠã¶ã¯ãDOMãžã®ãã¹ãŠã®å€æŽãè¡ãããåŸã«ã¬ã³ããªã³ã°ãè©Šã¿ãŸãã ãã ããããã€ãã®ããããã£ãèªã¿åãããšãããšã圌ã¯ãã£ãšæ©ããã¹ãŠãèšç®ããå¿ èŠããããŸãã ãããã£ãŠãDOMã®èªã¿åãã¯ã§ããéãå°ãªããããããæ©èœããªãå Žåã¯ãèªã¿åãçµæãïŒå¯èœã§ããã°ïŒãã£ãã·ã¥ããŸãã
çŸåšãé«éã§æ¯èŒç䟿å©ãªãã³ãã¬ãŒããšã³ãžã³ããããŸããããšãã°ã angularjsããã³Facebook Reactã®ãã³ãã¬ãŒããšã³ãžã³ã§ãã æ ã®æåã®é ãââãããã®åçŽãªããšããã䟿å©ãªãã³ãã¬ãŒãããŒã«ã®ååšã«æ°ã¥ããªãã£ãã®ã§ïŒåœæã¯ååšããŠããŸãããïŒïŒãç§ã¯ãããã䜿çšããŸããã§ããã
MVCã®åçã«åŸã£ãŠåå²ãããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒããé²åãããšãããã³ãã¬ãŒããšã³ãžã³ã¯ãŸã ãªãã£ããããå€æŽã«å¯Ÿãããã¹ãŠã®åå¿ãæåã§èª¬æããŸããïŒäžèšã®äŸã§èª¬æïŒã
ãã®åŸã angularjsã®äººæ°ãæ¥éã«é«ãŸã£ãŠããããããã³ãã¬ãŒããšã³ãžã³ã«æ³šæãåããŸãããããã¯ãã¢ãããã¯ãªå€æŽã®ååã«ãæºæ ããŠããŸãïŒããŒã¿ãã€ã³ãã£ã³ã°ããããŸããïŒã ããããç§ã«ãšã£ãŠã®é¢å¿ã¯ãããåçã§ãããããã«ãããšãç¶æ ã®å€åã¯èŠçŽ ã®ç¹æ§ã«çµã³ã€ããŠããŸãã ããã¯ãhtmlããã¥ã¡ã³ãã§è¿œå ã®å±æ§ã宣èšããããšã§çºçããŸãã
åŒã®è§£æãæ åœããã³ãŒããšãå±æ§èªäœãä»ããæ¥ä»ãã€ã³ãã£ã³ã°ã®å®£èšã¡ãœãããã angularjsããååŸããŸãã ã ãã®æ¥ç¶ã®èšè¿°æ¹æ³ã«ãããHTMLã³ãŒããæ©èœãããã©ãŠã¶ãŒãäœæ¥ã®æãé£ããéšåïŒHTML解æïŒãå®è¡ããçµæãåå©çšã§ããŸãïŒ.cloneNodeïŒïŒã¡ãœããã䜿çšããã¯ããŒã³äœæã䜿çšïŒ ã
äŸïŒ
<div class="user_tag_page usual_page" pv-class="lula_page usual_page {{!vmp_show && 'hidden'}}" ></div>
ãã®äŸã§ã¯ãpv-classãã£ã¬ã¯ãã£ãã䜿çšãããŠããŸãã ãã®å€ã«å¿ããŠãèŠçŽ ã«ã¯åžžã«lula_pageã®ã¯ã©ã¹ããããŸãããŸããã¢ãã«ã«vmp_showç¶æ ããªãå ŽåãèŠçŽ ã«ã¯å¥ã®ã¯ã©ã¹ïŒãé衚瀺ãïŒãå¿ èŠã§ãã vmp_showã®ç¶æ ãå€åãããšããã³ãã¬ãŒããšã³ãžã³ã¯èªåçã«.classNameãäžæžãããŸããããã³ãã¬ãŒããšã³ãžã³ã䜿çšãããªãå Žåã classNameã¯äžæžããããããã®å€ã¯æåã«èšè¿°ãããã®ãšåãã«ãªããŸã-class = "user_tag_page normal_page"
ãã®æ¹æ³ã¯ã䟿å©ã§è§£æã®æé©åãå¯èœã«ããã ãã§ãªããDOMã®å€æŽã«é¢é£ããããã©ãŒãã³ã¹ã®æé©åã®å¯èœæ§ãæäŸããŸãã ããšãã°ãèŠçŽ ã¯ã©ã¹ãå€æŽããããšãããã©ãŒãã³ã¹ã®æé©åãå®è£ ãããŸãã jQueryïŒããŒãïŒ.addClassïŒ 'sample-class'ïŒã¡ãœããã¯ãèŠçŽ ã«ãã®ãããªã¯ã©ã¹ããããã©ããã確èªããããšãç¥ã£ãŠãããããããŸããã æžã蟌ã¿ã®åã«ãïŒå°ãªããšãclassList APIã衚瀺ããããŸã§ïŒè¿œå ã®ââèªã¿åããè¡ããŸãã ããããä»¥æ¥ ãã³ãã¬ãŒããšã³ãžã³ã§ã¯ãã¢ãã«ã®çŸåšã®ç¶æ ã«ããã¯ã©ã¹ã®å®å šãªã»ãããšã¯ã©ã¹ã®ã»ãããç¥ã£ãŠããŸãïŒããšãã°ãã lula_pageéåžžã®ããŒãžé衚瀺 ãïŒãããã«ãããè¡ãããšãã§ããŸãã
node.className = "lula_page usual_page hidden";
ã€ãŸã classNameã®ä»¥åã®å€ãèªã¿åãå¿ èŠã¯ãããŸããã§ãããç¶æ ãå€æŽãããå Žåã«ã®ã¿å€æŽããäŸåããç¶æ ã®ãªã¹ãå šäœãšã¯ã©ã¹å€ãæ£ç¢ºã«äœã§ããããç¥ã£ãŠããããã§ãã
ã¢ãã«ã®ç¶æ ãšå¯Ÿå¿ããDOMæ§é ããããã°ããã®DOMããŸã£ããèªãå¿ èŠã¯ãããŸããïŒä»ã®ããŒãã®ãµã€ãºã«äŸåããªãå Žåãé€ãïŒã
ãã ããç¹ã«èªã¿åãã¯ã©ã¹ã®å Žåã説æããååã§ã¯ããã©ãŒãã³ã¹ããŸã£ããåäžããªãå ŽåããããŸãïŒå°ãªããšããææ°ã®ãã©ãŠã¶ãŒã¯ã classNameã®å®å šãªå€ãæäŸããããã«ãµã€ãºãå Žæãèšç®ããå¿ èŠããªãããšãç解ããå¿ èŠããããŸãïŒãã³ãã¬ãŒããšã³ãžã³ããåãåãããŒãã¹ã
ãã ããææ°ã®çŸåšãªãªãŒã¹ãããŠããjqueryããŒãžã§ã³ïŒ2014幎1æ24æ¥ã1.11ã2.1ïŒã®ãªãªãŒã¹ã«é¢é£ããã¬ã³ãŒãã§ã¯ãéçºè 㯠ãã¯ã©ã¹ãå€æŽããããšãã«è¿œå ã®ã¬ã€ã¢ãŠãå€æŽããªã¬ãŒãä¿®æ£ããããšãå ±åããŸãã ïŒãã¬ã€ã¢ãŠãã®åŒ·å¶ãæžãããã®èŠåºããåç §ïŒã ã€ãŸã ããã¯éèŠã§ãããéåžžã«æ·±å»ã§ãã Chromeéçºè ããã®åé¡ã«åãçµãã§ããŸãã
ãã£ãã·ã¥èŠçŽ ã®ãµã€ãºãšã¬ã€ã¢ãŠã
èŠçŽ ã®ãµã€ãºãŸãã¯é 眮ãèªã¿åããšãä»ã®ãã¹ãŠã®å€æŽãæ©æã«èšç®ãããŸããããã¯æé©åã«é©ããå Žæã§ãã ãããå¯èœãªå Žåã«ã¯ããã£ãã·ã¥ã䜿çšããŸãã
ããšãã°ãåçãšèªã¿èŸŒã¿ã®çŸåšã®é²è¡ç¶æ³ã衚瀺ããããŒãã®å¹ ãèšå®ããã«ã¯ãå¹ ã®ããŒã»ã³ããŒãžå€ã§ã¯ãªãããã¯ã»ã«å€ã䜿çšããŸãã
éåžžå¹ ã®ããã°ã¬ã¹ããŒãã¡ã€ã«
ãã¡ã€ã«ã®ãªã¹ããå±éããå¹ ã®é²è¡ç¶æ³ããŒ
ç°ãªããŠã£ã³ããŠå¹ ã®å¹ ããã°ã¬ã¹ããŒ
èšç®ããã«ã¯ã芪èŠçŽ ã®å¹ ãç¥ãå¿ èŠããããŸãã 芪èŠçŽ ã®å¹ ã¯ãç»é¢ã®å¹ ãšãèŠã€ãã£ããã¡ã€ã«ã®ãªã¹ãã®å®å šãŸãã¯åäžã®è¡šç€ºãšã¯ç°ãªãå ŽåããããŸãã
ãã®å Žåãå¹ ã¯ä»ã®ãã©ã¡ãŒã¿ãŒã«äŸåããŸããã åãå¹ ãšãªã¹ã衚瀺ã¢ãŒãã§ã¯ãããŒãã®å¹ ã¯åžžã«åãã«ãªããŸãã ãªããžããªã«ã¢ã¯ã»ã¹ãããšãã«ãããŒã®äžéšãšããŠå¹ ã«åœ±é¿ããå¯èœæ§ã®ããç¶æ ã䜿çšããŸãã
this.getBoxDemension(this.getProgressWidth, 'progress_c-width', window_width, !!p_wmss);
ã¡ãœããã®æåã®ãã©ã¡ãŒã¿ãŒïŒ getProgressWidth ïŒã¯ãã¹ãã¢ã«ãã®ããŒã®å€ããªãå Žåã«getBoxDemensionã¡ãœããèªäœãåŒã³åºãé¢æ°ã§ãã
ä»ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯ãåã«æååã«è¿œå ãããŸãã ãã®å Žåã è¡ã®p_wmssã¯ãfalseããŸãã¯ãtrueãã«ãªããŸã ïŒ1ã€ã®ãã¡ã€ã«ãŸãã¯ãªã¹ãå šäœã衚瀺ãããŸãïŒã ãã®çµæãããŒã¯progress_c-width-1372-falseã®ããã«ãªããŸã ã
ãŠã£ã³ããŠãŸãã¯è¡šç€ºã¢ãŒãã®å¹ ãå€æŽãããšãæ°ããããŒã®æ°ããå¹ ãèšç®ããïŒã¹ãã¢ã«ãªãå ŽåïŒããã®å¹ ã«äŸåããéšåãèªåçã«åæç»ãããŸãã
å®éãããŒã«ããã«2è¡ãè¿œå ãããŸã-ããã¯èŠªãã¥ãŒå ã®ãã®ãã¥ãŒã®ã¹ããã-ã¹ãããäœçœ®ã®ååã§ãïŒãã¬ãŒã ã¯ãŒã¯ã®çšèªã§ã¯ããã®äœçœ®åããã¥ãŒã«èªåçã«å²ãåœãŠãŸãïŒãåãããšãå éšã®èŠªãã¥ãŒã«ãåœãŠã¯ãŸããŸãã芪ãã¥ãŒã ããã¯ãåããã¥ãŒãç°ãªãå Žæã§äœ¿çšãããå Žåã«äœ¿çšããããããèšç®ããããµã€ãºã¯ãããšãã°ããã¡ã€ã«ãªã¹ãã®ç»é¢å¹ ã衚瀺ã¢ãŒãã ãã§ãªãããã¥ãŒã䜿çšãããå Žæã«ãäŸåããŸãã
ããã«ãã¬ããŒãã®äžéšã§ãGoogleã®åŸæ¥å¡Paul Lewisãããã«ã€ããŠèªã£ãŠãããããªãèŠãããšãã§ããŸãã åãããŒãã«é¢ããPaul LewisãšPaul Irishã®å ±åèšäºãåç §ããŠãã ããã ãã®èšäºããã®ã¬ã³ããªã³ã°ã«äœããã®åœ¢ã§åœ±é¿ããããããã£ã®ãªã¹ã ã
DOMã§è¡ãããã«å¿ èŠãªå€æŽã®æ£ç¢ºã§ãé·æçã§ãªãèç©
ãã¬ãŒã ã¯ãŒã¯ã¯ãç°ãªãç¶æ ã«äŸåãããã®ç¶æ ãæŽæ°ããããšå€åããã¢ãã«ç¶æ ã®ãã¥ãŒã«éä¿¡ãããåã«ãããã±ãŒãžå ã®ãã¹ãŠã®ç¶æ ã®ã³ã¬ã¯ã·ã§ã³ãå®è£ ããŸãã ãã ãããã®ã¢ãã«ã®ã¿ã§ãããã¢ããªã±ãŒã·ã§ã³å šäœã§ã¯ãããŸããã
ã¢ãã«ç¶æ ãæŽæ°ãããšãããã«äŸåããä»ã®ãã¹ãŠã®ã¢ãã«ç¶æ ãèªåçã«æŽæ°ãããå€æŽã1ã€ã®å€§ããªããã±ãŒãžã«åéãããŠãã¥ãŒã«éä¿¡ããã1åã®å埩ã§ã¬ã³ããªã³ã°ãè¡ãããŸãã å€æŽã®èšç®ã¯ããã®ã¢ãã«ã«æ°ããå€æŽã衚瀺ãããªããªããŸã§è¡ãããŸãã éä¿¡ã¯ããã®ã¢ãã«ã®ç¶æ ãèšç®ããããšã«ãã£ãŠã®ã¿é 延ãããŸãïŒãã以äžã¯è¡ãããŸããïŒã ãããã®ã¢ãã«ã®ä»ã®ã¢ãã«ïŒããšãã°ãæŽæ°ãããã¢ãã«ïŒã«äŸåããç¶æ ã®å€åã¯ãæŽæ°ãããã¢ãã«ããã¥ãŒã«å€æŽãéä¿¡ããåŸã«ã®ã¿èšç®ãããŸãã
ãããã£ãŠãç¶æ å€åã®èç©ãå®çŸãããããŸãé·ããã©ãã°ãããªãã
è€æ°ã®ç¶æ ãæåã§æŽæ°ãããšãã«1åã®å埩ã§ã¬ã³ããªã³ã°ããã«ã¯ã次ã®æ¹æ³ã䜿çšããŸãã
.updateManyStates({ artist: 'artist_224', title: 'radnomd title 014' })
ãã®ãããª2ã€ã®ã¹ããããå®è¡ãã代ããã«ïŒ
updateState('artist', 'artist_224')
updateState('title', 'radnomd title 014')
å°æ¥çã«ã¯ããã®ååã«å ããŠãrequestAnimationFrameã䜿çšããŠããã³ãã¬ãŒããšã³ãžã³ã®åŽã§çŽæ¥æžã蟌ã¿ã®å€æŽãèç©ããããšã称è³ããŸãã
ã³ã¬ã¯ã·ã§ã³å šäœãDOMãããã¿ããããŠåã¢ã¿ãããã代ããã«ãã³ã¬ã¯ã·ã§ã³ãäžåºŠã«å€æŽããéšåïŒ createDocumentFragment ïŒãç¹å®ã®å ŽæïŒ after ã before ïŒã«ã¢ã¿ãããã
ãªã¹ããå€æŽããŠãããªã¹ãã¯åæç»ãããŸããã
ãªã¹ããå€æŽãããšããªã¹ãã¢ã€ãã ã«é¢é£ä»ããããDOMããŒãã¯åäœæãããŸããã
ãªã¹ããå€æŽãããšãããªã¹ãã®DOMèŠçŽ ã®æ°ããã·ãŒã±ã³ã¹ã¯ãããã¥ã¡ã³ãããå®å šã«ãã¿ããããã®ã§ã¯ãªããå¿ èŠã«å¿ããŠãã¿ããããŠãå€æŽãããïŒãŸãã¯æ°ããïŒèŠçŽ ãå³å¯ã«å®çŸ©ãããå Žæã«ã¢ã¿ããããããšã«ãã£ãŠç¢ºç«ãããŸãã
æ·»ä»ãããªã¹ãã¢ã€ãã ã«å¯Ÿå¿ããDOMã¯åå¥ã«æ·»ä»ãããŸããããèŠçŽ ã次ã ã«ç§»åããå Žåã¯createDocumentFragmentã§æ·»ä»ãããŸã ã èŠçŽ ã¯documentDrafmentã«ç®çã®é åºã§æ·»ä»ããããã®åŸdocumentDrafment㯠ã after ã beforeãŸãã¯appendã¡ãœããã䜿çšããŠãããã¥ã¡ã³ãã®ç®çã®å Žæã«æ·»ä»ãããŸã ã
ãããã£ãŠãDOMã®ãªã¹ããå€æŽãããšãæãå¿ èŠã§æå°éã®å€æŽã®ã¿ãçºçããŸãã
ãã®ãªã¹ãã§æåŸã®èŠçŽ ã匷調衚瀺ããããªã¹ãïŒã³ã³ãœãŒã«ã®ã°ããŒãã«å€æ°$ 0ã¯éžæãã匷調衚瀺ãããèŠçŽ ã$ 1ã$ 2ã$ 3ã¯ä»¥åã«éžæãããèŠçŽ ã§ãïŒ
å€æ°ã®æ°ããã³ã³ããžã·ã§ã³ããªã¹ãã«è¿œå ãããŸãããã以åã«éžæãããã³ã³ããžã·ã§ã³ïŒãªã¹ããå€æŽãããïŒã®è¡šç€ºãæ åœããèŠçŽ ã¯ãŸã£ããåãããŒãã®ãŸãŸã§ãã
ããã«ãJohn Rezigã®ããã°ãããšã³ããªã®ç¿»èš³ãèªãããšãã§ããŸãã
ããã°ã¬ãã·ãéåæã¬ã³ããªã³ã°ïŒããããªè©³çŽ°ã§ç»åãããã«æç»ããããã®åŸããã«è©³çŽ°ã衚瀺ãããŸã
å¿ èŠã«å¿ããŠãèŠçŽ ãäºãã«å ¥ãåã«ãã倧ããªæ§é ãæç»ããŸãïŒåçŽãªãã®ã§ãå ¥ââãåéšåãšããŠå®è£ ãããããšãæãå€ãïŒãå¿ èŠã«å¿ããŠãªã¹ããæç»ãããªã©ãæåã®å埩ã®ãã¬ãŒã ã¯ãŒã¯ã¯æ§é ã®æäžéšã«ã¢ãã«ã®ãã¥ãŒãæç»ããŸãã ãã®ã€ãã¬ãŒã·ã§ã³å ã«ã¯ãããã«2ã€ã®èŠçŽ ããããŸããèŠèŠçãªæ¬¡å ãå®çŸ©ãããŸãã«ãã®åºç€ãæããã次ã«è©³çŽ°ãæãããŸãïŒãã®ã¢ãã«ã«çŽæ¥é¢ä¿ããç¶æ ã®å€åã«å¯Ÿããåå¿ïŒã 次ã®å埩ã§ããã¬ãŒã ã¯ãŒã¯ã¯ãã¹ããããã¢ãã«ãæç»ããããã¯ãã¹ããçµäºãããŸã§ç¶ããŸãã ãã¹ãŠã®å埩ã¯åé¢ãããŠãããã¬ã³ããªã³ã°ã«ããšãã°200ããªç§ä»¥äžãããå ŽåïŒå°æ¥çã«ã¯requestAnimationFrameã«çœ®ãæããäºå®ã§ãïŒã setTimeoutã䜿çšããŠè§£æŸã§ããŸããããã«ãããã€ã³ã¿ãŒãã§ã€ã¹ããããã¯ãããããã©ãŠã¶ãŒãæ¢ã«ååšãããã®ãæç»ã§ããããã«ãªããŸãã ãŠãŒã¶ãŒã«ãšã£ãŠãã€ã³ã¿ãŒãã§ãŒã¹ã¯åŸã ã«å€åããŸãã åçŽãªæ¹æ³ãšã¯å¯Ÿç §çã«ãé·ãäžæåæ¢ã®åŸïŒãã©ãŠã¶ãã¯ãªãã¯ã«å¿çãããåããã®ã衚瀺ããéïŒããã©ãŠã¶ãç»åãåçã«å€æŽãããšãã«ãããã€ãã®å€æŽãçºçããŠããããšãããããŸãã
ããã¯ããã°ã¬ãã·ãjpegã«äŒŒãŠããããã²ãŒã ãšã³ãžã³ãæãåºãããŸãã ãšã³ãžã³ã«ãªãœãŒã¹ãäžè¶³ããç»åãæåã«äœå質ïŒãã£ã«ã¿ãŒåŠçãããŠããªããã¯ã¹ãã£ãäœããªãŽã³ã¢ãã«ãªã©ïŒã§è¡šç€ºããããã®åŸç»åãæ¹åããå ŽåããããŸãã
ã¢ãã¡ãŒã·ã§ã³ã2ãã¬ãŒã ã ããã°ã¬ãã·ãã¬ã³ããªã³ã°ïŒæåã«ã¹ã¯ã©ã³ãã«ã次ã«è©³çŽ°ã ãããã°ã¢ãŒãã§ã®ã¿ãç¬éããã£ããã£ããæåã®éšåããã£ããã£ããããšãå¯èœã§ãããããã«ããã調å ã衚瀺ãããŸãã
ããŒãã®ã¯ããŒãã³ã°
ãã¥ãŒã®DOMæ§é ã®ååŸã¯ããããã次ã®ãšããã§ãããã©ãŠã¶ãŒèªäœã®HTMLããŒãµãŒãHTMLã1å解æãïŒæãé£ããäœæ¥ãå®è¡ããŸããããã¯ããŒãžå šäœã®èªã¿èŸŒã¿äžã«äºåã«è¡ãããŸãïŒãå¿ èŠã«å¿ããŠãçµæã¯DOM APIïŒ .cloneNodeïŒïŒ ïŒ ãã³ãã¬ãŒãã®ã€ã³ã¹ã¿ã³ã¹ã¯ããã³ãã¬ãŒãããªãŒã®DOMã®ã¯ããŒã³ãäœæããããšã§äœæããããã®åŸããã®ããŒãã«é¢é£ä»ãããããã£ã¬ã¯ãã£ããèªã¿åãããŠè§£æãããŸãã
DOMãã³ãã¬ãŒãã®è§£æçµæã®ãã£ãã·ã¥ã®ãã£ãã·ã¥ãšäœ¿çš
ããŒããè€è£œããåŸããã£ã¬ã¯ãã£ããæ€çŽ¢ããããã«å±æ§ãå床èªã¿èŸŒãå¿ èŠã¯ãããŸããïŒããŒãã®è€è£œæã«ãµãŒãã¹ããŒã¿ã¯ã³ããŒãããŸããïŒããŸããããå¹ççã«ã¡ã¢ãªã䜿çšãããããŸãã«ããªã¬ãŒããããã«ããã£ã¬ã¯ãã£ãã«ãã£ãŠäœæããããªããžã§ã¯ããåå©çšããŸãïŒåŸã§ãã³ãã¬ãŒããšã³ãžã³ã§äœ¿çšããããïŒ garbadgeã³ã¬ã¯ã¿ãŒã§ã¯ãå ã®ããŒãããã¯ããŒã³ããŒãã«ãµãŒãã¹ããŒã¿ããã°ããã³ããŒã§ãããœãªã¥ãŒã·ã§ã³ãèŠã€ãããŸããã
ããã¯æ¬¡ã®ããã«çºçããŸãããã³ãã¬ãŒãDOMæ§é ã解æããã解æãããŸãã ãã£ã¬ã¯ãã£ããæã€èŠçŽ ã®ãã¹ãŠã®ããŒãã¯ããªããžããªã«æ ŒçŽãããå°æ¥äœ¿çšã§ãããã£ã¬ã¯ãã£ãã®äžæã®ã»ããã«å¯Ÿå¿ããäžæã®å€ãæã€pvprsdããããã£ã«èšå®ãããŸãã å¿ èŠãªãã¹ãŠã®èŠçŽ ã«ããããã£ã»ãããèšå®ãããã«ãŒãããå§ãŸããšãæ§é ãé åã«å±éãããŸãã ãã³ãã¬ãŒãæ§é ã¯ã«ãŒãããè€è£œããããã®ã€ã³ã¹ã¿ã³ã¹ãè€è£œãããŸãã ã€ã³ã¹ã¿ã³ã¹ã¯ãã«ãŒãããåæ§ã®æ¹æ³ã§ããã«é åã«å解ãããŸãã ãã®ãããªã¯ããŒã³äœæãšæãããã¿ã«ãããåãã€ã³ããã¯ã¹ã®äžã®ã¢ã¬ã€ãæ£ç¢ºã«åãããŒããæã€ããã«ãªããŸãã ãã®åŸãé åãéåžžéããã¹ãããšãæåã®é åã®èŠçŽ ããã€ã³ã¹ã¿ã³ã¹é åã®èŠçŽ ã«pvprsdãã³ããŒãããŸãã
var getAll = function(node) { var result = []; var iteration_list = [ node ]; var i = 0; while( iteration_list.length ){ var cur_node = iteration_list.shift(); if ( cur_node.nodeType != 1 ){ continue; } for ( i = 0; i < cur_node.childNodes.length; i++ ) { iteration_list.push( cur_node.childNodes[i] ); } result.push( cur_node ); } return result; };
var cloned = this.onode.cloneNode(true); var all_onodes = getAll(this.onode); var all_cnodes = getAll(cloned);
ãããã«
ã·ã¹ãã ã¬ãã«ã§ã¢ããªã±ãŒã·ã§ã³ã«å®è£ ããæé©åæ¹æ³ã«ã€ããŠèª¬æããŸããã ããã«ãããæ¯ååãæé©åãããã°ã©ã ããããšã¯ã§ããŸããããããã€ãã®ã«ãŒã«ã«åŸã£ãŠãçµæãšããŠçç£æ§ã®é«ãã³ãŒããäœæã§ããŸãã ãã¡ãããç§ã¯ä»ã®æ¹æ³ã䜿çšãããããã¡ã€ãªã³ã°ã䜿çšããŸãããããã¯ç¹å®ã®ã±ãŒã¹ã§çºçããäœåãªæéãããããŸãã
ã·ã¹ãã ã¬ãã«ã§ä»ã«ã©ã®ãããªæé©åãå®è£ ã§ããããç¥ããããšæããŸãã ããšãã°ããã®äŸã§æåã§è¡ãããããã«ãiframe / objectèŠçŽ ã«åºã¥ããŠèŠèŠçã«åŒãè£ãããé åã®èªåäœæïŒ http : //fb.html5isready.com
ã¢ããªã±ãŒã·ã§ã³ã®èŠèŠçè¡šçŸã®äžéšã¯ãªããžã§ã¯ãèŠçŽ å ã«ãããŸã
ç§ã¯ãã®ãããªæ¹æ³ãå®è£ ããŠããŸãããããã³ãã¬ãŒãããã®ã€ã³ã¹ã¿ã³ã¹ãã¹ã¿ã€ã«ãåäœç¶æ ã®å€æŽãä»»æã®åºæºã«åºã¥ããŠèªåçã«äœæãããiframeã«è©²åœããå Žåããããèªåã¢ãŒãã§å®è£ ããã®ãçŸå®çã ãšæããŸãã
ããªããç¥ã£ãŠããã·ã¹ãã ã¬ãã«ã§ã®æé©åæè¡ã®ä»ã®å®è£ ã«ã€ããŠæããŠãã ããïŒ ãã®ãããªãŸãã¯ãã®ãã㪠ïŒã ãŸãã¯ãã©ããã§ãã®ãããªæé©åã®ã¢ã€ãã¢ãè¡šæããïŒ äŸ ïŒããŸãã¯å ±æããæºåãã§ããŠããã°ãããªãã®ã¢ã€ãã¢ã«ã€ããŠã