Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Backbone.jsÔÚ´óÐ͵¥Ò³ÃæÓ¦ÓÃÖеÄÓ¦ÓÃʵ¼ù
 
À´Ô´£ºÍ㶹ʵÑéÊÒ ×÷ÕߣºÕÔÍûÒ° ·¢²¼ÓÚ 2015-7-9
  3442  次浏览      27
 

Backbone.jsÊÇʲô£¿

Bakcbone.jsÊÇÒ»¸öJavaScript MVC¿ò¼Ü£¬ÌṩÁËÁ¼ºÃµÄ´úÂë×éÖ¯ÄÜÁ¦£¬¿ÉÒÔ·½±ãµØ½«Ó¦ÓóÌÐò½âñî³É¿ÉÒÔ¸´ÓõIJ¿·Ö£¬Îª½¨Á¢´óÐ͵ĵ¥Ò³ÃæÓ¦ÓÃÌṩ¿ò¼ÜÖ§³Ö£¬Ä¿Ç°µÄ°æ±¾ÊÇ0.9.10£¨×¢£ºÏÖÔÚÒѵ½1.2.1°æ±¾£©¡£Í¨¹ý½«Ó¦ÓóÌÐò·Ö½â³ÉMVCģʽÖв»Í¬Ö°ÔðµÄÄ£¿é£¬´øÀ´ÁËÒÔϼ¸µãºÃ´¦¡£

  1. ½µµÍά»¤³É±¾¡£Êý¾Ý¡¢¿ØÖÆÆ÷¡¢ÊÓͼµÄ¸üж¼ÊǶÀÁ¢½øÐе쬻¥ÏàÖ®¼ä¶¼ÊÇËÉÉ¢ñîºÏµÄ¡£
  2. ½âñîÊý¾ÝºÍÊÓͼ£¬±ãÓÚÖ±½Ó¶ÔÒµÎñÂß¼­½øÐе¥Ôª²âÊÔ¡£
  3. ±ãÓÚÍŶӺÏ×÷£¬¸ºÔðUI¿ª·¢ºÍÒµÎñÂß¼­¿ª·¢µÄ¹¤³Ìʦ¿ÉÒÔ·Ö¹¤²¢Ðй¤×÷¡£¶ÔÓÚWebǰ¶Ë¿ª·¢À´½²£¬¸ºÔðHTMLÄ£°åºÍCSSµÄ½çÃæ¹¤³ÌʦºÍ¸ºÔðÒµÎñÂß¼­µÄJavaScript¹¤³Ìʦ¿ÉÒÔЭͬ¹¤×÷¡£

Backbone.jsËãÊDZȽÏÇáÁ¿µÄMVC¿ò¼Ü£¬ËùνÇáÁ¿£¬ÊÇ˵ËüÖ»¹Ø×¢Ò»¸ö¿ò¼ÜÓ¦¸Ã¹Ø×¢µÄ×î»ù±¾µÄÊÂÇ顪¡ªÈçºÎ¸øÓ¦Ó÷ֲ㡢ÈçºÎ×éÖ¯¸÷ÖÖ¹¦ÄܵĴúÂë¡£ÖÁÓÚÔÚʵ¼Ê¿ª·¢ÖÐÐèÒªÓõ½µÄUtils»òUI×é¼þ£¬Backbone.jsÔòûÓÐÌṩÈκÎÖ§³Ö¡£µ«Backbone.jsËùÒÀÀµµÄUnderscore.jsÊÇÒ»¸ö¹¦ÄܱȽÏÈ«ÃæµÄ·ÇÇÖÈëʽ¹¤¾ßº¯ÊýÀà¿â£¬ËãÊÇÔÚUtils·½ÃæµÄÒ»¸ö²¹³ä¡£

ÇáÁ¿²¢²»Òâζ׏¦Äܱ¡Èõ¡£Ê×ÏÈ£¬Backbone.jsµÄ¾«ËèÊÇËü¶¨Òåǰ¶ËMVCµÄ·½Ê½ºÍ±àÂëÕÜѧ£¬²¢ÒÀ¾ÝÕâЩ¹æ¶¨ÁËÈçºÎÈ¥¸ø´úÂë·Ö²ã£¬Òò´ËBackbone.jsÄܹ»ÈÃǰ¶Ë¹¤³ÌÔÚ¿Éά»¤ÐÔºÍÀ©Õ¹ÐÔÉ϶¼µÃµ½ÖʵÄÌáÉý£»Í¬Ê±£¬ÓÉÓÚÆäÁ¼ºÃÇÒÒ×ÓÚÀí½âµÄ½á¹¹£¬¸÷¸öÄ£¿éÖ®¼ä¶¼ÊÇËÉÉ¢ñîºÏµÄ£¬ËäȻĿǰ¹Ù·½²¢Ã»ÓÐÌṩ¸ù¾Ýʵ¼ÊÐèÇóbuildÎļþµÄ¹¦ÄÜ£¬µ«Èç¹ûÄãÔ¸Ò⣬ÍêÈ«¿ÉÒÔ×Ô¼ºÊÖ¹¤É¾µôÔ´ÂëÖеÄBakcbone.ViewֻʹÓÃModelºÍCollection£»×îºó£¬Backbone.jsµÄÈκÎÒ»¸ö²¿·Ö¶¼ÊǷdz£ÈÝÒ×À©Õ¹µÄ¡£Òò´Ë£¬Backbone.jsµÄ¹¦ÄÜʵ¼ÊÉϷdz£Ç¿´óµÄ¡£ÏÂÃæ½«½éÉÜBackbone.jsµÄÖ÷Òª×é¼þ£¨¼Ü¹¹Èçͼ1Ëùʾ£©¡£

ͼ1 ¼Ü¹¹Í¼

Backbone.EventsºÍBackbone.Sync

Backbone.EventsºÍBackbone.SyncÁ½¸ö×é¼þÊÇBackbone.jsÒ첽ͨÐÅ¡¢Ê¼þÇý¶¯µÄ±à³ÌÄ£Ð͵Ļù´¡¡£

Backbone.jsÖÐËùÓеÄ×é¼þ¶¼Í¨¹ý_.extend()µÄ·½·¨¡°¼Ì³Ð¡±ÁËBackbone.EventsËùÌṩµÄ¹¦ÄÜ£¬¿ÉÒÔά»¤Ò»Ì××Ô¼ºµÄʼþ¶©Ôĺͻص÷ÁÐ±í¡£Í¨¹ýEvents.on(event,[callback],[context])ºÍEvents.off([event], [callback], [context])Á½¸ö·½·¨À´ÊµÏÖ¶ÔʼþµÄ¶©ÔĺÍÈ¡Ïû¶©ÔÄ¡£

ÔçÆÚ°æ±¾ÖеÄʼþ¶©ÔĺÍÈ¡Ïû¶©ÔÄÊÇͨ¹ýEvents.bind()ºÍEvents.unbind()Á½¸ö·½·¨ÊµÏֵģ¬Ä¿Ç°µÄ°æ±¾Öл¹±£ÁôÁËÕâÁ½¸ö±ðÃû·½·¨£¬µ«²»ÍƼöʹÓá£

Backbone.jsµÄËùÓÐ×é¼þ¶¼ÓÐһЩÄÚÖõÄʼþ£¬¿ÉÒÔ²éÔĹٷ½Îĵµ¡£³ýÁËÔ¤ÖÃʼþÍ⣬ͨ¹ýEvents.trigger(event,[*args])·½·¨Ò²¿ÉÒÔ·½±ãµØ´¥·¢×Ô¶¨Òåʼþ¡£

´Ó0.9°æ¿ªÊ¼£¬Backbone.EventsÌṩÁËEvents.listenTo(other,event,callback)ºÍEvents.stopListening([other],[event],[callback])Á½¸öз½·¨À´Í¨¹ýÁíÍâÒ»ÖÖÐÎʽʵÏÖʼþµÄ¶©ÔĺÍÈ¡Ïû¶©ÔÄ¡£

Óëon()ºÍof f()²»Í¬£¬ÕâÖÖ·½Ê½½«¼àÌýµÄÖ÷¶¯È¨×ª»»ÁË¡£¾Ù¸öÀý×ÓÀ´Ëµ£ºÓжÔÏóAºÍ¶ÔÏóB£¬B.on('someThingHappened',A.doSomeThing)Êǵ±¶ÔÏóBsomeThingHappenedʱºòÖª¶ÔÏóAÈ¥doSomeThing£»¶øA.listenTo(B,'someThingHappend',A.doSomeThing)ÊǶÔÏóAÖ÷¶¯È¥¶¢×ŶÔÏóB£¬µ±ËüsomeThingHappendµÄʱºòÈ¥doSomeThing¡£

µÚ¶þÖÖ·½Ê½×î´óµÄÒâÒåÊDZ䱻¶¯ÎªÖ÷¶¯£¬´Ó¶øÊµÏÖÁËIoC£¨Inversionofcontrol£¬¿ØÖÆ·´×ª£©¡£¼àÌýÕߺͱ»¼àÌýÕßÖ®¼äûÓÐÁËñîºÏ£¬Ö»Òª±»¼àÌýµÄ¶ÔÏóÄܹ»Å׳öÖ¸¶¨µÄʼþ£¬¾Í¿ÉÒԺͼàÌýÕß×éºÏÔÚÒ»Æð£¬ÉõÖÁ²»ÐèҪȥ¹ØÐı»¼àÌý¶ÔÏóµÄÀàÐÍ£¬Õâ¶Ô´úÂëµÄ¸´ÓúÍÐÐΪ³éÏóÓкܴóµÄ°ïÖú¡£ÔÚ²âÊÔ²ãÃæ£¬¿ÉÒÔÇáÒ׵ذѱ»¼àÌý¶ÔÏó»»³ÉmockµÄ²âÊÔ´úÂëÀ´Ä£ÄâÕæÊµÇé¿ö¡£

Backbone.SyncÔò½«Í¬·þÎñÆ÷µÄͨÐÅ·â×°ÁËÆðÀ´£¬µ±CollectionºÍModelÐèÒªºÍ·þÎñÆ÷ͨÐŽ»»»Êý¾Ýʱ£¬»áÈ¥µ÷ÓÃBackbone.SyncÖжÔÓ¦µÄ·½·¨²¢·¢ËÍÇëÇó£¬Èç¹û·þÎñÆ÷¶ËÖ§³ÖRESTfulAPI¾Í¿ÉÒÔ½«Õû¸öͨÐŹý³ÌÃèÊöµÃ·Ç³£ÓÅÑŲ¢Ò×ÓÚÀ©Õ¹¡£SyncµÄʵÏÖ¿ÉÒÔÊÇjQuery.ajax()µÄ·â×°£¬Ò²¿ÉÒÔÊÇÆäËûµÄÀà¿âÌṩµÄÒ첽ͨÐŹ¤¾ßµÄ·â×°¡£

Backbone.ModelºÍBackbone.Collection

Backbone.jsÖеÄModelºÍCollection¹²Í¬¹¹³ÉÁËMVCÖеÄM²ã¡£ModelµÄ±¾ÖʾÍÊÇÒ»×éÒÔkeyvalueÐÎʽ±£´æµÄÊý¾Ý£¬¿ÉÒÔͨ¹ýBackbone.Model.extend()À´¶¨Òå×Ô¼ºµÄModel¡£

ÉÏÃæµÄʾÀý´úÂëÖÐdefaultsÊôÐÔ¶¨ÒåÁËÒ»×éĬÈÏÖµ£¬µ±Model³õʼ»¯Ê±£¬Èç¹ûûÓÐÖ¸¶¨defualtsÖÐËù¶¨ÒåµÄÊôÐÔµÄÖµ£¬¾Í»áÓÃĬÈÏÖµÀ´Ìî³äModel£»initialize()·½·¨»áÔÚModel±»ÊµÀý»¯Ê±µ÷Óã¬ÓÃÀ´½øÐÐһЩ³õʼ»¯µÄ²Ù×÷£»validate()·½·¨»áÔÚModelµÄsave()»òset()·½·¨±»µ÷ÓÃʱִÐУ¬¿ÉÒÔ¸ù¾Ý¾ßÌåÐèÇó½øÐÐÀ©Õ¹¡£

ͨ¹ýModelµÄgettersºÍsetters¿ÉÒÔʵÏÖ¶ÔModelÖÐÊôÐԵĶÁд£¬²¢ÇÒµ±set()·½·¨±»µ÷ÓÃʱ£¬Model»á½«ÊôÐԱ仯µÄʼþ¹ã²¥¸øËùÓж©ÔÄÕߣ¨Í¨³£ÊÇÊÓͼ£©£¬Çý¶¯ÊÓÍ¼ÖØÐÂäÖȾ»òÆäËû¹ØÁªµÄModelµÄÊý¾Ý¸üС£

CollectionÊÇÒ»×éModelµÄ¼¯ºÏ£¬Í¨¹ýCollection¿ÉÒÔ½«Ò»×éÊý¾Ý½á¹¹ÏàͬµÄModelÓÐÐòµØ×éÖ¯ÔÚÒ»Æð£¬½øÐÐÅúÁ¿²Ù×÷ºÍ¹ÜÀíµÈ¡£Í¬Ê±£¬Collection´úÀíÁËUndersore.jsÖÐÖÚ¶àÓÃÀ´²Ù×÷CollectionµÄ¹¤¾ß·½·¨£¬ÀýÈçfind¡¢filter¡¢mapµÈ¡£

ModelºÍCollection¶¼¿ÉÒÔͨ¹ýRESTfulAPIͬ·þÎñÆ÷½øÐÐÊý¾Ý½»»»¡£

Backbone.View

Backbone.ViewÊÇ»ùÓÚBackbone.js¿ª·¢µÄWeb AppÖеĺËÐIJ¿·Ö£¬¸ºÔðÓû§½»»¥Ê¼þµÄ²¶×½ºÍ´¦Àí¡¢°ÑÓû§ÊäÈëµ¼ÏòModel»òCollection¡¢äÖȾÊÓͼ¡¢²Ù×÷DOMµÈ¡£Backbone.jsµÄÄÚ²¿ÊµÏÖÒÀÀµ$±äÁ¿£¬Òò´ËDOM²Ù×÷µÄ¿â¿ÉÒÔÔÚjQuery¡¢Zepto»òEnderµÈÖÐÑ¡Ôñ¡£´ÓĿǰµÄÇé¿öÀ´¿´£¬ÔÚ×ÀÃæä¯ÀÀÆ÷ÖУ¬Sizzle.js£¨jQuer yËùʹÓõÄSelectorEngine£©µÄÐÔÄÜ»¹ÊÇ˦¿ªZepto¼¸Ìõ½ÖµÄ£¬Òò´ËÃæÏò×ÀÃæä¯ÀÀÆ÷µÄ¿ª·¢»¹ÊÇÍÆ¼öʹÓÃjQuery£¬Òƶ¯¶Ë¿¼Âǵ½ÎļþÌå»ýµÈÒòËØÍÆ¼öʹÓÃZepto¡£

¶ÔÓÚÒ»¸öBackbone.ViewÀ´½²£¬×îÖØÒªµÄ¾ÍÊÇ$elÊôÐÔ£¬$elÊÇÒ»¸öjQuery¶ÔÏó£¨È¡¾öÓÚËù²ÉÓõÄDOM²Ù×÷Àà¿â£©£¬ÊÇÒ»¸öÊÓͼµÄ×îÍâ²ãÈÝÆ÷¡£ÈÝÆ÷Ëù²ÉÓõÄHTML±êÇ©¿ÉÒÔͨ¹ýtagNameÊôÐÔÀ´Ö¸¶¨£¬¿ÉÒÔÊÇulÒ²¿ÉÒÔÊÇheader»òÆäËûÈκαêÇ©£¬Ä¬ÈÏÇé¿öÏÂÊÇdiv¡£

ÈÝÆ÷ÄÚ²¿µÄDOMäÖȾ¿ÉÒÔͨ¹ýÄ£°åÒýÇæÀ´Íê³É¡£Underscore.js±¾ÉíÌṩÁËÒ»¸ö_.template()µÄ·½·¨£¬Òò´ËBackbone.js²»ÐèÒª¶îÍâµÄÄ£°åÒýÇæÖ§³Ö¡£µ±È»£¬Èç¹ûÓÐÌØÊâµÄÐèÇó£¬ÀýÈçºÍºó¶Ë¹²ÓÃÄ£°åÎļþ£¬Ò²¿ÉÒÔÑ¡ÓÃMustacheµÈÆäËûµÄÄ£°åÒýÇæ¡£

ÕâÑùÒ»¸öView¾Í±»äÖȾµ½½çÃæÉÏÁË¡£ÉÏÃæµÄ´úÂëÖл¹¼àÌýÁËModelµÄchangeʼþ£¬µ±Êý¾Ý·¢Éú±ä»¯Ê±£¬Çý¶¯ÊÓÍ¼ÖØÐÂäÖȾ¡£µ±ModelµÄÊý¾Ý±È½Ï·á¸»Ê±£¬Ö»ÓÐÒ»¸öÊôÐԱ仯¾ÍÖØÐÂäÖȾÕû¸öÊÓͼÏÔÈ»»á´øÀ´ÐÔÄÜÉϵÄÒþ»¼£¬Òò´ËÕâÀïµÄ×î¼Ñʵ¼ù¾ÍÊǰÑrenderµÄ¹ý³Ìbreak-down³ÉÁ£¶È¸üϸµÄƬ¶Î¡£

ÖµµÃ×¢ÒâµÄÊÇ£¬µ±Ò»¸öView²»ÔÙ±»ÐèҪʱ£¬Ò»¶¨Òª¼ÇµÃÏú»Ù£¬³ýÁËÏú»ÙDOM¶ÔÏóÍ⣬ҲҪÏú»ÙËùÓеÄʼþ¼àÌýÆ÷¡£ÔÚÖ»ÓÐEvents.on()ºÍEvents.off()µÄÄê´ú£¬ÓÉÓÚÏú»ÙViewʱÐèÒªÖðһȡÏû¶©ÔÄËùÓеÄÏûÏ¢£¬¾­³£ÓÉÓÚÍü¼Ç½â³ýij¸ö°ó¶¨µ¼Ö²úÉú±»³ÆÎªGhostViewµÄÀ¬»ø¶ÔÏ󣬼ÈÎÞ·¨±»ÊÍ·ÅÒ²ÎÞ·¨±»»ØÊÕ¡£ÕâÒ²ÊÇEvents.listentTo()·½·¨´øÀ´µÄÁíÍâÒ»¸öºÃ´¦¡ª¡ªÖ»Òªµ÷ÓÃEvents.stopListening()·½·¨¼´¿É½«´Ë¶ÔÏóµÄËùÓÐʼþ¼àÌýÆ÷Ïú»Ù¡£

ËùÓеÄDOMʼþÒ²ÊÇͨ¹ý$elÀ´´úÀíµÄ£¬ÔÚBackbone.ViewÖпÉÒÔͨ¹ýÒÔÏ·½·¨À´·½±ãµØ¹ÜÀíDOMʼþ¡£

Backbone.jsµÄÄÚ²¿ÊµÏÖÀÔÚViewµÄ¹¹Ôì·½·¨Öе÷ÓÃView. initialize( )ºó½«¼ÌÐøµ÷ÓÃView.delegateEvents()·½·¨£¬Õâ¸ö·½·¨½«½âÎöeventsÊôÐÔËù¶¨ÒåµÄʼþºÍ»Øµ÷ÁÐ±í£¬²¢½«È«²¿Ê¼þ´úÀíµ½$el¶ÔÏóÉÏ¡£ÓÉÓÚʹÓõÄÊÇʼþ´úÀí£¬Ä³Ð©²»Ö§³ÖðÅݵÄDOMʼþÔò±ØÐëÁíÍâ¼àÌý£¬Èç¹ö¶¯Ìõʼþ¡£

Backbone.RouterºÍBackbone.History

RouterÊÇÓÃÀ´ÔÚURLHashºÍÌØ¶¨µÄ¶¯×÷»òÊÓͼ֮¼ä×öÓ³ÉäµÄ¡£

×îºóÒ»¾äHistory.start()ÊǸæËßBackbone.js¿ªÊ¼¶ÔURLHashµÄ±ä»¯½øÐмàÊÓ£¬Ò²¿ÉÒÔËæÊ±Í¨¹ýHistory.stop()À´Í£Ö¹¼àÊÓ¡£Í¬Ê±£¬Èç¹ûÄ¿±êƽ̨ÊÇÖ§³ÖHTML5Histor yAPIµÄ£¬ÄÇôÔÚstartʱ´«Èë{pushstate:true}µÄ²ÎÊý£¬¾Í¿ÉÒÔÈ¥µôURLÖеÄ#×Ö·û£¬¶ÔSEOÓÐÒ»¶¨°ïÖú¡£

Backbone.jsµÄÊÊÓó¡¾°

¾­³£ÄÜÔÚ¸÷ÖÖ³¡ºÏÌýµ½Ç°¶Ë¹¤³ÌʦÃÇÌÖÂÛ¡°ÄãÃǵÄXXXÊÇÓÃʲô×öµÄ°¡£¿¡±¡°ÎªÊ²Ã´²»ÓÃXXX°¡£¿¡±ÕâÑùµÄÎÊÌ⡣ǰ¶ËµÄÀà¿âºÍ¿ò¼ÜÁÖÁÖ×Ü×Ü£¬ËãÔÚÒ»ÆðÊýÁ¿Ã»ÓÐһǧҲÓÐÎå°Ù£¬Òò´ËÔÚÃæ¶ÔÒ»¸öÐÂÏîĿʱÄÑÃâ»á²úÉúÑ¡Ôñ¿Ö¾åÖ¢¡£

µ«Ëµµ½µ×£¬¼¼Êõ·½°¸¶¼ÊÇÓÉÐèÇó¾ö¶¨µÄ£¬ÈκÎÒ»¸öÀà¿â»ò¿ò¼Ü¶¼ÓÐÆäÊÊÓ÷¶Î§ºÍ×î¼ÑµÄʹÓó¡¾°£¬Backbone.jsÒ²²»ÀýÍâ¡£Backbone.jsµÄ×î¼ÑʹÓó¡¾°ÊÇ´óÐ͵ĵ¥Ò³ÃæÓ¦ÓãºÍ¨¹ýRESTfulAPIͬ·þÎñÆ÷ͨÐÅ£¬È»ºó¸ù¾ÝÊý¾ÝµÄ±ä»¯À´Çý¶¯ÊÓÍ¼ÖØÐÂäÖȾ£¬Õû¸ö³ÌÐò½¨Á¢ÔÚÒ첽ͨÐźÍʼþÇý¶¯µÄ±à³ÌÄ£ÐÍÖ®ÉÏ¡£

µ¥Ò³ÃæÓ¦ÓøøÓû§´øÀ´µÄʹÓÃÌåÑéÊdzÁ½þʽµÄ¡¢Ïà¶ÔÖØÐ͵쬶ÔÓÚÆÕͨµÄWeb PageºÍÊý¾ÝÏà¶ÔÎȶ¨¡¢ÊÓͼ²»ÐèҪƵ·±ÖØÐÂäÖȾµÄ³¡¾°À´½²£¬Backbone.jsÏÔÈ»¾ÍûÓÐÓÃÎäÖ®µØÁË¡£

Backbone.jsºÍMV*²»µÃ²»ËµµÄÄǵãʶù

ËÄÊ®Äêǰ£¬Trygve Reenskaug»ùÓÚSmartalkÓïÑÔÉè¼Æ³öÁËMVCģʽ£¬¾­¹ý¼¸Ê®ÄêµÄ·¢Õ¹£¬MVC³öÏÖÁËÖÚ¶àµÄÑÜÉú¡£¶øÎÒÃǽñÈÕ˵µÄMVCÔÚ²»¼ÓÌØÊâ˵Ã÷µÄÇé¿öÏ£¬Í¨³£Ö¸µÄÊÇÔÚ·þÎñÆ÷¶ËWebÓ¦Óÿª·¢ÖдóÁ¿Ê¹ÓõÄWebMVC¡£

¶ÔÓÚµäÐÍMVCģʽÀ´½²£¬ViewÊÇÎÞ·¨Ö±½Ó»ñµÃÓû§ÊäÈëµÄ£¬¶øControllerÔòÊÇÓû§ÊäÈëºÍViewÖ®¼äµÄÇÅÁº¡£µ«ÔÚä¯ÀÀÆ÷ÖУ¬View²ãµÄÔØÌåÊÇHTML£¬Óû§ÊäÈëºÍ½»»¥ÐÐΪ¶¼ÊÇ»ùÓÚHTMLµÄ£¬¶ÔʼþµÄ²¶×½¡¢ÊäÈë¶¼ÓÉä¯ÀÀÆ÷´úÀÍÁË£¬²¢ÇÒÊäÈë»áÊ×ÏȽøÈëView²ã£¬Òò´Ë¶ÔÓÚǰ¶Ë¿ª·¢À´½²£¬ÑϸñÒâÒåµÄMVCÊÇÎÞ·¨ÊµÏֵġ£

Òò´Ë£¬°üÀ¨Backbone.jsÔÚÄÚµÄJavaScript MVC¿ò¼ÜµÄʵÏÖ²¢Ã»ÓÐÑϸñ×ñÑ­MVCµÄ¶¨Ò壬ControllerµÄ²¿·ÖÖ°Ôð±»×ªÒƵ½ÁËView²ã¡£Bakcbone.js¶ÔÓÚǰ¶ËMVCµÄ¶¨Òå·Ç³£Ò×ÓÚÀí½â£¬µ«¶ÔÓÚû½Ó´¥¹ýMVCģʽµÄͬѧÀ´ËµÔÚ³õÆÚ»áÓÐһЩÃÔ»ó£¬Ô­ÒòÊÇBakcbone.jsºËÐÄ×é¼þµÄÃüÃû¡£Backbone.jsµÄºËÐÄ×é¼þ°üÀ¨Backbone.Collection¡¢Backbone.Model¡¢Backbone.ViewºÍBackbone.Router£¬¶øÔÚÔçÆÚµÄ°æ±¾ÖУ¬Backbone.Router×é¼þµÄÃû³ÆÊÇBackbone.Controller£¬ÕâºÜÈÝÒ×ÈÃÈËÖ±½Ó½«ÆäºÍMVCÈý²ãÖеÄC²ãÁªÏµÆðÀ´¡£µ«ÊÂʵÉÏ£¬Backbone.ControllerµÄ×÷ÓÃÊǸù¾ÝURLHashÀ´ÔÚ¶ÔÓ¦µÄÐÐΪºÍʼþÖÐ×ö·Óɵ쬯书ÄÜͬMVCÖеÄCÏà±ÈÒª¼òµ¥ºÜ¶à£¬Òò´ËÔÚ0.5ǰºóController¸ÄÃû½Ð×öRouterÁË¡£´ÓʵÌå´úÂëµÄ½Ç¶È¿´£¬View²ãÆäʵÊÇÄ£°å´úÂëºÍBackbone.ViewÖв¿·Ö´úÂëµÄ×ÛºÏÌ壬¶øBackbone.ViewÖÐÊ£ÓàµÄ²¿·Ö²ÅÊÇMVCģʽÖÐControllerµÄ¸ÅÄ¸ºÔð²Ù×÷ViewÒÔ¼°Êý¾ÝÔÚViewºÍModel²ãÖеÄÁ÷ת¡£

¶ÔÓÚǰ¶Ë¿ª·¢À´Ëµ£¬Óû§Ö±½ÓÃæ¶ÔµÄÒ»²ã²¢²»ÊÇController¶øÊÇView£¬Óû§ÊäÈëÒ²»áÊ×ÏȽøÈëView£¬Òò¶øÓÃMVPºÍMVVMģʽÀ´ÃèÊö¼Ü¹¹¸ü¼ÓºÏÀí¡£Ïà±ÈAngularJSµÈ¿ò¼Ü£¬Backbone.jsµÄģʽÏÔÈ»¸üÒ×ÓÚÀí½â£¬Ñ§Ï°ÇúÏß±È½ÏÆ½»º£¬ÒòΪËü²¢Ã»ÓÐÒýÈë¹ý¶àµÄÐèÒªÖØÐÂÈÏÖªºÍÀí½âµÄиÅÄî¶øÊǾ¡Á¿ÔÚ¿¿½ü´«Í³µÄMVCģʽ£¬¶ÔÓÚÒÔǰ½Ó´¥¹ýMVCģʽ¿ª·¢µÄͬѧÀ´Ëµ·Ç³£ÈÝÒ×ÉÏÊÖ£¬¶øAngularJSÖеÄDirectiveµÈ¸ÅÄÊÇÐèÒªÒ»¶¨ÈÏÖª³É±¾µÄ¡£

µ«Èç¹û´Ó¼Ü¹¹µÄ½Ç¶ÈÌÖÂÛ£¬AngularJSÆäʵÊǸüΪ´¿´â²¢¸ü½Ó½üÑϸñÒâÒåÉϵÄMVCģʽ¡£ÎªÁ˰ÑViewµÄ¹¦ÄÜÌáÉýµ½Ò»¸öÓ¦Óеĸ߶ȣ¬ÒýÈëÁËDirectiveµÄ¸ÅÄͨ¹ýÀ©Õ¹HTML±êÇ©ºÍ×Ô¶¨ÒåÊôÐÔÀ´ÃèÊöView£¬ÔÚDirectiveÖÐÀ´½âÎöÕâЩÀ©Õ¹³öÀ´µÄÄÚÈÝ£¬Àí½â³É±¾ºÍ´úÂëµÄ¸´Ôӳ̶ȶ¼ÓÐËùÌá¸ß£¬µ«View²ã¹¦ÄÜÔòµÃµ½ÁËÖʵÄÌáÉý¡£

·´¹ÛBackbone.js£¬²¢Ã»ÓÐÔÚǰ¶Ë¿ª·¢ÖÐÕæÕýµÄViewµÄÔØÌåHTMLÉÏ×öÌ«¶àÎÄÕ£¬¼´±ã²ÉÓÃÄ£°åÒýÇæÒ²½ö½öÊǰÑÊý¾ÝºÍHTML×éºÏÆðÀ´¡£µ«µÃÒæÓÚÆäÇ¿´óµÄÀ©Õ¹ÐÔ£¬¿ÉÒÔºÜÈÝÒ×½«KnockoutµÈData-binding¿ò¼Ü¼¯³É½øÀ´£¬´Ó¶øÊµÏÖMVVMµÄ¼Ü¹¹ºÍ·Ö²ã¡£ÀýÈçǰÎÄÌáµ½½«renderµÄ¹ý³ÌBreakdown¾ÍÍêÈ«¿ÉÒÔÓÃData-bindingÀ´È¡´ú£¬Ê¡µôÁËÊÖ¹¤¸üÐÂDOMµÄ·³Ëö¡£

Backbone.jsÔÚÍã¶¹¼ÔPC¿Í»§¶Ë2.0ÖеÄʵ¼ù

Íã¶¹¼ÔPC¿Í»§¶Ë2.0µÄUIÊÇÍêÈ«½¨Á¢ÔÚWebǰ¶Ë»ù´¡Éϵġ£½èÖúBackbone.js£¬Íã¶¹¼ÔPC¿Í»§¶ËÔÚ¿ª·¢´óÐ͵¥Ò³ÃæÓ¦ÓÃÖÐ×öÁË´óÁ¿µÄʵ¼ù¡£Í¨¹ýÔÚ¿Í»§¶ËÖÐÀ¦°óÒ»¸öWebkitÒýÇæ²¢¶ÔÆä½øÐÐÀ©Õ¹£¬Ê¹µÃÅÜÔÚWebviewÖеÄǰ¶Ë´úÂëÌø³öɳÏäµÄÏÞÖÆ£¬¿ÉÒÔ²Ù×÷Îļþϵͳ²¢µ÷ÓÃϵͳAPI£¬ÒÔ´ËÀ´½øÐÐ×ÀÃæÓ¦ÓõĿª·¢¡£ÕâÑù×öµÄºÃ´¦ÓÐÒÔϼ¸µã¡£

  1. ¼«´óÌá¸ß¿ª·¢Ð§ÂÊ£º×ÀÃæÓ¦ÓõĿª·¢ÖУ¬UI¿ª·¢Ð§ÂÊÒ»Ö±ºÜµÍ£¬µ«½èÖúHTML5ºÍCSS3µÄй¦ÄÜ£¬Webǰ¶Ë¿ÉÒÔÇáÒ×µØ×ö³ö¾«Ï¸³Ì¶ÈºÍ½»»¥ÌåÑé¶¼²»Êä×ÀÃæÓ¦ÓõÄUI£¬µ«¿ª·¢Ð§ÂʺÍά»¤³É±¾¶¼¼«´ó½µµÍ¡£
  2. Ò×ÓÚ¿çÆ½Ì¨£ºUIÒÀÀµÓÚWebkitÒýÇæ£¬¶øWebkitÒýÇæ±¾ÉíÊÇ¿çÆ½Ì¨µÄ£¬Òò´Ë¿ÉÒÔºÜÈÝÒ×µØÒÆÖ²µ½WebÉÏ»òÆäËû×ÀÃæÆ½Ì¨¡£
  3. ¿ìËÙµü´úºÍ¸Ä½ø£ºÓÉÓÚά»¤ºÍÀ©Õ¹³É±¾µÄϽµ£¬¿ÉÒÔ¿ìËٵĽ«Ô­ÐÍÉè¼Æ²úÆ·»¯²¢½øÐÐÑéÖ¤£¬Ìá¸ß²úÆ·µü´úºÍ¸Ä½øµÄËÙ¶È¡£

µ«Óë´Ëͬʱ£¬ÓÃWebǰ¶Ë¼¼Êõ¿ª·¢×ÀÃæÓ¦ÓÃÒ²ÒªÃæÁÙ¾Þ´óµÄÌôÕ½¡£Ê×ÏȾÍÊÇÄÚ´æÏûºÄ¡£Óû§ÔÚʹÓÃä¯ÀÀÆ÷ºÍʹÓÃ×ÀÃæÓ¦ÓÃʱµÄÐÄÀíÔ¤ÆÚÊDz»Ò»ÑùµÄ£¬¼´Ê¹Ò»¶ÎÓÐÄÚ´æÐ¹Â©ÎÊÌâµÄǰ¶Ë´úÂëÅÜÔÚä¯ÀÀÆ÷Àµ±³öÏÖÔËÐлºÂýʱ´ó²»ÁËÒ»ÏÂË¢ÐÂÒ³Ãæ£¬µ«¶Ô×ÀÃæÓ¦ÓÃÀ´½²£¬´ó¶àÊýÇé¿öÏÂûÓÐË¢ÐÂWebviewµÄ»ú»á£¬Òò´Ë±ØÐë¶ÔÄÚ´æÊµÏÖ¸ü¾«Ï¸µÄ¿ØÖÆ¡£ÓÉÓÚWebview±¾ÉíÒÀÀµÓÚGC£¬Ç°¶ËÎÞ·¨Ö÷¶¯¹ÜÀíºÍ»ØÊÕÄڴ棬Òò´Ë±ØÐë½èÖúChromeDeveloper toolsÖеÄProfilesµÈ¹¤¾ß²éÕÒ³öÏÖÄÚ´æÐ¹Â©µÄµØ·½´Ó¶ø½øÐиÄÉÆ£¬ÕâÒ²ÒÀÀµÓÚ´óÁ¿µÄ¾­Ñé»ýÀÛ¡£

Æä´ÎÊÇÔËÐÐËٶȺͽçÃæÏìÓ¦ËÙ¶È¡£ÓÉÓÚWebviewÊǵ¥Ï̵߳쬵«µ¥Ò³ÃæÓ¦ÓÃÃæÁÙµÄÊÇÊý°Ù±¶ÓÚWeb PageµÄÒµÎñÂß¼­¸´ÔÓ¶È£¬Í¬Ê±ÒµÎñÂß¼­µÄÖ´ÐкÍUI¹²ÓÃÒ»¸öỊ̈߳¬ÈçºÎÓÅ»¯Ö´ÐÐËÙ¶ÈÒ²ÊÇÒ»¸öºÜ´óµÄÌôÕ½¡£ËäȻĿǰWebUIµÄ½çÃæÁ÷³©³Ì¶ÈÎÞ·¨ÍêÈ«´ïµ½×ÀÃæÓ¦ÓõÄˮƽ£¬µ«ÒÀÈ»ÊǺÜÓоºÕùÁ¦ÇÒÓÐÌá¸ß¿Õ¼äµÄ¡£

 

   
3442 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢