µ¥Ò³or¶àÒ³
±¾ÎĽö´ú±í¸öÈ˹۵㣬²»×ãÇë¼ûÁ£¬»¶Ó´Í½Ì¡£
webapp
СîδÓʵ¥Ò³Ïà¹ØµÄ¿ª·¢Ò»ÄêÓÐÓ࣬ÆÚ¼äÎޱȵÄÍÆ³çwebappµÄÍøÕ¾Ä£Ê½£¬Ò²ÕûÀíÁ˺ܶàÒÆ¶¯¿ª·¢µÄ֪ʶµã£¬µ«ÊÇÏÖÔڻعýÍ·À´¿´£¬webapp¾¿¾¹ÊǺû¹ÊDz»ºÃÕæÊÇÒ»ÑÔÄѾ¡Ó´£¡
webappʹÓÃJavaScriptÐÞ¸ÄÒ³Ãæ£»½ô½Ó×ÅÔÙ´Ó·þÎñÆ÷´«µÝ¸ü¶àÊý¾ÝÈ»ºóÔÙÐÞ¸ÄÒ³Ãæ£¬Èç´ËÑ»·¡£
´ÓÐÔÄܵĽǶȿ´£¬ÔÚÏÖ´úä¯ÀÀÆ÷Öе¥Ò³ÃæWeb AppÒѾÄܹ»ºÍÆÕͨnativeÓ¦ÓóÌÐòÏàæÇÃÀ£¬¶øÇÒ¼¸ºõËùÓеIJÙ×÷ϵͳ¶¼Ö§³ÖÏÖ´úµÄä¯ÀÀÆ÷¡£
ËùÒÔ£¬ºÜ¶àÈËÈÏΪwebappÊÇHTML5Á÷Ðйý³ÌÖÐ×î´óµÄÓ®¼Ò£¬ÄÇôËûÓÐÄÄÐ©ÌØ¶¨ÄØ£¿
SPA£¨single page application£©£¬¼´µ¥Ò³webapp£¬Ëü¾ßÓÐÒÔÏÂÓŵ㣺
Óû§ÌåÑ飬¶ÔÓÚÄÚÈݵĸ͝²»ÐèÒª¼ÓÔØÕû¸öÒ³Ãæ¡£ÕâÑù²»»á³öÏÖ°×Ò³Çé¿ö£¬Ò³ÃæÓëÒ³ÃæÎÞ·ìÇл»£¬ÉõÖÁ´øÓÐÒ»¶¨¶¯»Ð§¹û¡£
ÇëÇóÁ¿ÉÙ£¬ÇëÇóÄÚÈÝÎÞÐè·þÎñÆ÷½âÎö£¬¶Ô·þÎñÆ÷ѹÁ¦½ÏС£¬ÏûºÄ¸üÉٵĴø¿í£¬±ÈÈçÿ´Î²»ÐèÒª½ÓÊÕÍêÕûµÄhtml½á¹¹£¬¶øÖ»ÐèÒªjsonÊý¾Ý¡£
µ±È»£¬µ¥Ò³Ó¦ÓÃÒ²²»ÊÇÍêÃÀÎÞ覵ģ¬ËûÒ²¾ßÓÐÒÔÏÂÎÊÌ⣺
ÓÉÓÚÀúÊ·ÔÒò£¬µ¥Ò³Ó¦ÓöÔSEOÖ§³Ö²»ÊÇÌ«ºÃ£¬ÐèÒª¶ÔSEO×öÌØÊâ´¦Àí¡£
Ê״μÓÔØÁ¿¹ý´ó£¬ÊׯÁ¼ÓÔØÂý£¬ËùÒÔÊׯÁÐèÒª×öÌØÊâ´¦Àí¡£
±¾ÉíÈëÃÅÃż÷¾Í¸ß£¬¼ÓÖ®view±àÂëÐèÒªÊÍ·Å×ÊÔ´£¬ÒÔÃâheapÖµ¹ý¸ß£¬¶Ô±àÂëÈËÔ±µÄÒªÇó½Ï¸ß¡£
ÏÖ×´
´«ËµÖеÄwebapp×ãÒÔæÇÃÀnative app£¬ÊÂʵÉÏÕâ¸ö×ãÒÔ»¹ÓкܴóµÄ¾àÀ룬СîÎÔ¤¼ÆÕâ¸ö¡°×ãÒÔ¡±ÐèÒªÓÃ2-3Äêʱ¼äÌîÆ½£¬ËùÒÔÊÂʵÊÇÊ²Ã´ÄØ£¿
ÊÂʵÉÏÒÆ¶¯¶ËµÄwebappģʽµÄÍøÕ¾ºÜÉÙºÜÉÙ£¬Ò»ÌÔ°ëÄêǰ»¹ÊÇ£¬ÕâÁ½ÌìÒ»¿´Óֱ仨À´ÁË£¬Ð¡îÎËäÈ»¶Ôwebapp±§ÓÐÐÅÐÄ£¬µ«ÊÇÐÅÐĴӺζøÀ´ÄØ£¿
Я³Ìwebapp¶ÀÊ÷Ò»ÖÄ£¬È¥ÄĶùipad½éÈëwebapp£¬µ«ÊǹúÄÚÖ÷Á÷ÍøÕ¾ÒÀ¾ÉÊÇ´«Í³ÍøÕ¾£¬Ö÷ÒªÔÒò²»¹ýÓжþ£º
¢Ù SEO
¢Ú ²»Ïë³Ôó¦Ð·
ËùÒÔ£¬Ð¯³ÌµÄwebappÔÚ¹úÄÚ£¬ºÎÆä¿É¹ó£¬Ëµµ½ÕâÀÎÒ¶¼Òª¿Þ³öÀ´ÁË......
ÓÅÁÓÖ®·Ö
ÊëÓÅÊëÁÓ·ÇÊÇСîοÉÒÔÂÛ¶Ï£¬ÇóÎÈ£¬webapp²»±È´«Í³ÍøÕ¾£»ÇóSEO£¬webappÐèÒªÆäËü½â¾ö·½°¸£»ËµÀ¬»øÊÕ¼¯£¬webappÐèÒª×Ô¼ºÊÍ·Å×ÊÔ´¡£
˵ÌåÑ飬webappÐèÒª¿¼ÂÇÊׯÁ¼ÓÔØ£»Ëµ¶¯»£¬webappÒª¿¼ÂǵͶËÊÖ»ú£¬ËùÒÔwebapp»¹Óкܳ¤Ò»¶Î·ÐèÒª×ߣ¡
СîÎÏàÐÅ£¬ÏÖÔÚµÄwebappЧ¹û²»¿ÉæÇÃÀnative app£¬×ÜÓÐÒ»Ì죬µ±webapp²»ÔÙÖÆÔ¼ÓÚÍøÂç¡¢É豸£¬ÄÇôwebappµÄ´ºÌì²»»áÔ¶¡£
Ëä˵Èç´Ë£¬ÏÖ½×¶ÎwebappÒ²»áÓÐÐí¶àÓÅ»¯Ðĵá¢Ææ¼¼ÒùÇÉ¿ÉÒÔÄóöÀ´ËµËµµÄ£¬ÕâÀïСîÎ×öÒ»´Î·ÖÏí£¬Ï£Íû¿ÉÒÔ¶ÔwebappµÄͬѧÓÐËù°ïÖú¡£
ÍøÂç´«ÊäÓÅ»¯
×ÛÊö
ǰ¶ËÓÅ»¯·ÖΪÁ½¸öÇÐÈëµã£ºÍøÂç´«ÊäÓëDOM²Ù×÷£¬¶øÍøÂç´«ÊäÊÇÖÆÔ¼Ò»¸öÍøÕ¾ËٶȵÄÖ÷ÒªÒòËØ¡£
ÍøÂç´«ÊäµÄÓÅ»¯ÒªµãÊÇ£¬ÁãÇëÇó£¬ÎÞÁ÷Á¿£¬ÆäÒâÊÇ×î´ó³Ì¶ÈµÄ¼õÉÙÇëÇóÊý£¬½µµÍÇëÇóÁ¿¡£
¶ÔwebappģʽµÄÓ¦ÓÃÀ´Ëµ£¬ÊׯÁ¼ÓÔØÂýÊÇÒ»¸ö²»¿É±ÜÃâµÄÎÊÌ⣬ËùÒÔÌáÉýwebappÊׯÁ¼ÓÔØËÙ¶ÈÊÇÌáÉýÕûÌåÍøÕ¾ËٶȵĹؼü¡£
fakeÒ³-ÊׯÁ¼ÓËÙ


ÒÔÉÏÊÇÒ»¸öÍøÕ¾Ê×Ò³µÄ¼ÓÔØÊ±¼ä£¬ÎÒÃÇ·Ö±ðÈ¡Æä150kbÓë30kbÍøËٵļÓÔØËÙ¶È£¬¿ÉÒÔ¿´³ö»áÂý£¡ÈôËûÊÇwebapp£¬ÎÒÃÇ¿ÉÒÔ×öһЩÓÅ»¯
ÎÒÃÇÓ¦¸Ã±ÜÃâÒ³Ãæ³¤Ê±¼ä°×Ò³£¬Õâ¸öʱºò±ãÌá³öÁËfakeÒ³µÄ¸ÅÄî¡£Ò³ÃæäÖȾֻÐèÒªÍêÕûµÄHTMLÒÔ¼°CSS£¬Õâ¸ö±ãÊǵÚÒ»¸öÓÅ»¯µã¡£
´ÓÊý¾ÝÇëÇóÊýÒÔ¼°ÇëÇóÁ¿À´Ëµ£¬webappÊ×Ò³µÄÏìÓ¦Ó¦¸Ã±È½ÏÂý£¬ÈôÊÇÈÎÓÉjs¼ÓÔØÍê³ÉÔÙäÖÈ¾Ò³Ãæ£¬Óû§ºÜÓпÉÄÜʧȥÄÍÐÄ¡£
µ«ÊÇ´ÓDOMContentLoadedÀ´¿´£¬Ê×Ò³ÊÂʵÉÏÒ³ÃæÏìÓ¦±È½ÏѸËÙ£¬ËùÒÔÕâ¸ö¼ÓÔØ½áÊøºóÒ³ÃæµÚÒ»ÆÁ±ãäÖȾ½áÊø£¬È»ºóÔÙÒì²½¼ÓÔØjs£¬µ±js¸Ä±äºóÔÙ¶¯Ì¬¸Ä±ädom½á¹¹ÖеÄһЩ¹Ø¼üµã
Õâ¸öʱºòÒ»¸ö¾²Ì¬HTMLÒ³Ãæ£¬×°ÔØÊׯÁµÄ»ù±¾ÄÚÈÝ£¬ÈÃÊ×Ò³¿ìËÙÏÔʾ
È»ºójs¼ÓÔØ½áÊøºó»áÂíÉÏÖØÐÂäÖȾÕû¸öÒ³Ãæ£¬Õâ¸öÑù×Ó£¬Óû§¾Í¿ÉÒԺܿìµÄ¿´µ½Ò³ÃæÏìÓ¦£¬¸øÓû§Ò»¸ö¿ìµÄ´í¾õ£¬¸øÈ˸оõ¿ìµÃ¶à¡£
½µµÍÇëÇóÊý
ÓÉwebappÊ×Ò³À´Ëµ£¬²»¿É±ÜÃâµÄʹÓõÄjsÎļþ½Ï¶à£¬ÕâЩÎļþ·ÖΪÁ½Àࣺ
¢Ù ¿ò¼Üjs-css
¢Ú ¸÷¸öÒµÎñÍŶÓjs-css
ËùÒÔ¿ÉÒÔÏÞ¶¨Ã¿¸öÒµÎñÍŶÓÖ»»á¼ÓÔØÕâËĸöÎļþ£¬ÒÔ×îС½µµÍÇëÇóÊý£¬ÕâÀïÓÖÉæ¼°µ½²¢ÐмÓÔØ£¬ÊýÁ¿ÓëÈÝÁ¿ÓÐÒ»¸öÁÙ½çÖµ£¬ÈçºÎÈ¡Õâ¸öÁÙ½çÖµÐèÒª¸÷λ×Ô¼ºÈ¥ÊµÑé
½µµÍÇëÇóÁ¿
Ëä˵ͼƬѹËõÊDz»±ØËµµÄÊÂÇ飬µ«ÊÇ×Ü»áÓÐЩʱºòÄã»á·¢ÏÖÒ»Ð©ÍøÕ¾µÄͼƬ³ß´çºÜ´ó£¬Õâ¸öÐèÒª´¦Àí£¬¶øÇÒ±ØÐë´¦Àí¡£
ÒÔ¿ò¼Ü¿âΪÀý£¬³ýÁ˺ËÐİüÒÔÍ⣬²»ÐèÒªµÄUI»òÕß¹¦ÄÜ¿â¿ÉÒÔÌÞ³ý£¬Óõ½ÁËÔÙ¶¯Ì¬¼ÓÔØ£¬¼õÉÙÊ״μÓÔØÁ¿£¬Õâ¸öÒ»¿ªÊ¼¾ÍµÃ×öºÃ£¬×ö²»ºÃºóÆÚ¾Í²»ºÃ¸Ä
ÒÔÒµÎñÍŶÓΪÀý£¬Ê״μÓÔØµÄjsÓëhtmlÄ£°å»á½«³£ÓõöÒ³ÃæÑ¹ËõºÏ²¢£¬ÆäËüÒ³Ãæ·ÃÎÊʱÔÙÇëÇó£¬ÈôÊÇÏëÌáÉýÊׯÁ¼ÓÔØ±ã¿ÉÒÔÖ»ÏÂÔØÐèÒªµÄÒ³ÃæÎļþ¡£
ÁíÍ⣬ÒÔÏÂÁ½µãÓÈÆäÐèҪעÒ⣺
¢Ù ÈôÊÇÄãÃÇÊÇÒªµÄ»¹ÊÇjQuery¿âµÄ»°£¬¿ÉÒÔ¿¼ÂÇ»»³ÉzeptoÁË
¢Ú ÎðºúÂÒÒýÓõÚÈý·½¿â£¬ÈôÊÇÒªÒýÓÃÒ»¶¨ÊǶÁ¶®Ô´ÂëµÄÇé¿öÏÂÖØÐ´Ê¹ÓÃÖ®£¬ÕâÑùµÄºÃ´¦ÊÇ£¬³ÔµÃ͸£¬ÍòÒ»ÓÐÎÊÌ⣬Äܸ쬶ø²»ÊÇû°ì·¨ÓÖ»»¿â
»º´æAjax/localstorage
¸Ã·½°¸µÄÔÀíÓëÇ°ÃæÀàËÆ£¬ÎÒÃÇ·¢ËÍAjaxÇëÇóʱºò£¬Ó¦¸Ã»º´æÒ»Ð©·ÇʵʱÊý¾Ý£¬±ÈÈç³ÇÊÐÐÅÏ¢ºÍ³£ÓÃÁªÏµÈË£¬µ«ÊÇÎÒÃÇÖ»ÄÜ»º´æ·ÇÃô¸ÐÐÅÏ¢£¬
²úÆ·ËÑË÷Ò³ÖÁÁбíÒ³µÄÇëÇóÊý¾Ý»á»º´æ30s-60s£¬ÈôÊǹýÆÚʱ¼äÄÚÓû§»Øµ½ÁбíÒ³µÄ»°²»»áÖØÐÂÇëÇóÊý¾Ý
Õâ¶Ô·þÎñÆ÷ѹÁ¦£¬Ò³ÃæÏìÓ¦½ÔÊÇÓÐÀûµÄ£¬Õâ¸öÔÚ30sÄÚÊÂʵÉÏÒâÒå²»´ó£¬¿ÉÒÔ¼õÉÙÒ»´ÎÇëÇó¡£
ÁíÍ⣬¶ÔÓÚgetºÍpostµÄЧÂÊ£¬Ôø¾ÓÐÈË×ö¹ýÒ»´Î²âÊÔ£º
get100´Îƽ¾ùºÄʱ323ms£»post100´Îƽ¾ùºÄʱ589ms£¬ËùÒÔpost·½Ê½ÊDZÈgetÂýµÄ£¬µ«postÇëÇóµÄÓŵãÊǰ²È«£¬²¢ÇÒ²ÎÊýûÓ㤶ÈÏÞÖÆ¡£
ÊÇÑ¡Ôñpost»¹ÊÇÑ¡Ôñget£¬½ÔÐèÒª´¦Àí£¬±ÜÃâ½Ø¶Ïurl£¬»òÕß´¦´¦post¡£-
lazyload
Ö»ÏÔʾÊׯÁÒ³Ãæ£¬ÆäËüÄÚÈÝÐèҪʱÔÙ¼ÓÔØ£¬±ÈÈçÁбíÒ³¡¢Í¼Æ¬lazyload£¬½ÔÐèÒª×ö
DOM²Ù×÷ÓÅ»¯
×ÛÊö
DOM²Ù×÷Ö÷Òª·ÖÎªÒ³ÃæäÖȾÓë×ÊÔ´ÇåÀí£¨heap¿ØÖÆ£©£¬Á½ÕßÖ®¼äÓÖÏศÏà³É£¬ÈôÊÇDOM²Ù×÷Ò»¿é´¦Àí²»ºÃ£¬Æä²úÉúµÄ¸Ð¾õ¾Í²»ÔÙÊÇÂý£¬¶øÊÇ¿¨
ËùÒÔDOM²Ù×÷ÓÅ»¯µÄÖ÷ҪĿµÄ¾ÍÊÇÏûÃðÒ³Ãæ¿¨µÄÎÊÌ⣬Õâ¸öÔÚÒÆ¶¯¶ËÓÈÎªÖØÒª¡£
¹ØÓÚÒ³ÃæäÖȾ
ä¯ÀÀÆ÷»á½âÎöÈý¸ö¶«Î÷£ºHTML¡¢Javascript¡¢CSS
ä¯ÀÀÆ÷Ê×ÏÈ»á¸ù¾ÝHTMLÉú³ÉDOM Tree£¬Æä´Î»á¸ù¾ÝCSSÉú³ÉCSS
Rule Tree£¬javascript¿ÉÒÔͨ¹ýDOM APIÓëCSS API²Ù×÷DOM TreeÓëCSS
Rule Tree£¬´Ó¶øÒýÆðÒ³Ãæ±ä»¯¡£
ä¯ÀÀÆ÷½âÎö½áÊø»áͨ¹ýDOM TreeÓëCSS Rule TreeÐγÉrender
tree£¬Ö»ÓÐdisplay²»ÎªnoneµÄÔªËØ²Å»áÐγÉrender Tree£¬render TreeÐγɺóä¯ÀÀÆ÷»áµ÷ÓÃGUI»æÖÆÒ³Ã棬ÔÚ´Ë֮ǰ×öµÄÒ»¼þÊÂÇé±ãÊÇlayout»òÕß˵reflow¡£ÉÏÃæµÄÃèÊö¼òµ¥¶øÑÔ¿ÉÒÔ·ÖΪÒÔÏÂÁ÷³Ì£º
Éú³ÉDOMÊ÷
¼ÆËãCSSÑùʽ
¹¹½¨render tree
reflow£¬¶¨Î»ÔªËØÎ»ÖôóС
»æÖÆÒ³Ãæ
ÔÚÕâ¸ö¹ý³ÌÖУ¬ÈôÊÇjavascript¶¯Ì¬¸Ä±äDOM Tree±ã»áÒýÆðreflow
Ò³ÃæÖеÄÔªËØ¸Ä±ä£¬Ö»Òª²»Ó°Ïì³ß´ç£¬±ÈÈçÖ»ÊÇÑÕÉ«¸Ä±äÖ»»áÒýÆðrepaint²»»áÒýÆð»ØÁ÷
·ñÔò£¬reflow²»¿É±ÜÃ⣬Õâ¸öʱºò±ãÐèÒªÖØÐ¼ÆËãÐγÉrender Tree
reflow·ÖΪ¾Ö²¿»ØÁ÷ÓëÈ«¾Ö»ØÁ÷£¬»áÓ°ÏìÏÂÃæµÄ£¬²»»áÓ°ÏìÉÏÃæµÄÔªËØ
reflowºÄÓõÄϵͳ×ÊÔ´½Ï´ó£¬DOM TreeÖÐÊܵ½Ó°ÏìµÄ½Úµã½Ô»áreflow£¬È»ºóÓ°ÏìÆä×Ó½Úµã×µÄÇé¿öÊÇËùÓнڵãreflow£¬¸ÃÎÊÌâÒý·¢µÄÏÖÏó±ãÊǵÍÐÔÄܵĵçÄÔ·çÉȲ»Í£µÄת£¬ÊÖ»ú±äµÃºÜÈÈ£¬²¢Çҷdz£ºÄµç£¬ÒÔϲÙ×÷¿ÉÄÜÒýÆðreflow
²Ù×÷dom½á¹¹
¶¯»
DOMÑùʽÐÞ¸Ä
»ñÈ¡ÔªËØ³ß´çµÄAPI
¼õÉÙʹÓö¨Î»ÊôÐÔ£¨fixed/absolute£©
staticÔªËØ´¦ÓÚÎĵµÁ÷ÖУ¬ÆääÖȾËÙ¶ÈÊÇ×î¿ìµÄ£¬ÎÒÃÇ×ö¹ýÒ»¸ö²âÊÔ£º
100¸öabsoluteÔªËØÓë100¸östaticÔªËØäÖȾʱ²îÔÚ0.01-0.007ms
100000¸öÔªËØäÖȾ²î¾à±ãÔöÖÁ30ms×óÓÒ£¬Õâ¸ö΢СµÄʱ²îÔÚÒÆ¶¯¶Ë±äµÃÓÈΪÃ÷ÏÔ£¬±ÈÈ磺
СÃ×/ÈýÐÇÊÖ»ú£¨1000×óÓÒ£©£¬±ã´æÔÚÃ÷ÏÔµÄäÖȾÎÊÌ⣬¾ßÌå±íÏÖΪ£º
¶¨Î»ÔªËØÔÚÊÖ»úÉϲ»ÄÜÏÔʾ¡£
¶¨Î»ÔªËض¯»Ð§¹ûʧЧ¡£
ÒÔÉÏÎÊÌâ±ãÊÇUIäÖȾʧЧ¶àµ¼Ö£¬×îºÃµÄ½â¾ö·½°¸ÊǼõÉÙʹÓö¨Î»ÔªËØ£¬·ñÔòÖ»ÄÜÒýÆðÇ¿ÁÒreflow²ÅÄܽâ¾ö¡£
ÁíÍ⣬²úÆ·¾³£»áÓÐfixedµÄÏà¹ØÐèÇ󣬱ÈÈçÖ§¸¶°´Å¥Ò»Ö±³öÏÖÔڵͶˣ¬Õâ¸öÐèÇó»áÔì³ÉÁ½¸öÎÊÌ⣺
fixedÔªËØÔâÓöÎı¾¿òʱʧЧ£¬¿ÉÄÜ»áÆ®µ½Ò³ÃæÖмä×èµ²ÊäÈë
Ó°ÏìЧÂÊ
ÎÊÌâÒ»ÔÒòÓëÒÆ¶¯¶ËµÄʵÏÖÓйأ¬ÔÝʱûÓÐÍêÃÀµÄ½â¾ö·½°¸£¬ÎÊÌâ¶þ±ãÓëäÖȾֱ½Ó¹ØÁª
¹öÆÁʱ£¬Ò³ÃæÉÏËùÓеÄÏñËØ»á¸ú׏ö¶¯£¬ÏÔ¿¨¶ÔÈ«ÆÁÄ»ÉÏÏÂÒÆ¶¯µÄ´¦ÀíºÜ¿ì£¬µ«ÊÇÈôÊdzöÏÖÒ»¸öfixedÔªËØ»òÕßÓÐÔªËØ²»¸ú×ÅÒ»Æð¹ö¶¯£¬ÄÇô¹ö¶¯¶ÔÊÖ»úä¯ÀÀÆ÷À´Ëµ¾ÍÊÇÒ»¸ö¸ºµ££¬ÕâÖÖ¹ö¶¯µÄÐÔÄÜÉõÖÁÌåÏÖÔÚÁËiphone
4s£¬ÒòΪ¹ö¶¯¿ÉÄÜ»áÔì³Éreflow£¬Õâ¸öÏÖÏóÌåÏÖÔÚ£º
ʹÓÃabsoluteÅäºÏjavascriptÄ£ÄâfixedЧ¹ûʱ£¬»áÓÐ¶ÏÆ¬µÄЧ¹û£¬¸ÃÎÊÌâÔÚiphone5s±ã²»»á³öÏÖÕâ¸öÎÊÌâ¡£

Ææ¼¼ÒùÇÉ
µ±È»£¬ÎÒÃDz»ÄܺöÂÔ²úÆ·µÄÐèÇó£¬fixedÀàÐèÇóÓ¦¸ÃÔÚ¼¼ÊõÉϵõ½½â¾ö£¬»¹Óû§Ò»¸öÁ¼ºÃµÄÌåÑé¡£
ÐéÄâ¼üÅ̵¼ÖÂfixedÔªËØ´íλ
fixedÔªËØÒ»¶¨»á°éËæÐéÄâ¼üÅ̵ijöÏÖ£¬µ«ÊÇÐéÄâ¼üÅÌÖ»ÊÇ¡°Ìù¡±ÔÚÁËviewportÉÏ£¬±íÃæÉϲ»»á¶Ôdom²úÉú¡°ÈκΡ±Ó°Ï죬µ«ÊÇÕâ¸öʱºòfixedÔªËØ±íÏÖÈ´±äµÃ¹ÖÒìÆðÀ´£¬»á´íλ¡£
Ó¦ÓòãÃæ½â¾öÎÊÌâ·½°¸ÊÇ£¬ÐéÄâ¼üÅ̵¯³öʱ½«fixedÔªËØÉèÖÃΪstatic£¬ÐéÄâ¼üÅÌÏûʧʱºòÉèÖûØÀ´¡£
ÓÉÓÚÐéÄâ¼üÅ̳öÏÖ²¢Î´Å׳öʼþ£¬¶ø¼ì²âscroll»òÕßresizeʼþ£¬½Ô»áÓÐÒ»¶¨ÑÓ³Ù£¬»á³öÏÖÉÁ˸ÏÖÏó£¬ËùÒÔÏÖÓÐ×îºÃµÄ·½°¸ÊÇsetinterval¶¨Ê±Æ÷¼à¿Øµ±Ç°»ñÈ¡½¹µãÔªËØÊÇ·ñΪÎı¾ÔªËØ£¬ÈôÊÇÊǵϰ±ãÐèÒª´¦Àí£¬Èç´Ë±ã¿É½â¾öfixedÔªËØ´íÎóÎÊÌâ¡£
fixedÔªËØ»¬¶¯¹ßÐÔÆ½»¬¶È
ÎÒÃdz£³£Óöµ½ÕâÖÖ²úÆ·ÐèÇó£¬tab±êÇ©À¸¿ªÊ¼¹Ì¶¨£¬µ±¹ö¶¯Ïòϳ¬¹ý¸Ã±êÇ©À¸ºó±ã»á±ä³ÉfixedÔªËØ£¬Ò»Ö±³öÏÖÔÚÍ·²¿£¬ÕâÑùµÄÐèÇóÔÚµçÄÔÉÏûÓÐÎÊÌ⣬µ«ÊÇÔÚiPhone5sÒÔϵÄÊÖ»ú³£³£»á³öÏÖС·¶Î§´íλ»òÕß¿ìËÙÒÆ¶¯´ó·¶Î§´íλµÄÎÊÌâ¡£
Õâ¸öʱºòÎÒÃÇ¿ÉÒÔÒýÆðreflowÆÈʹä¯ÀÀÆ÷ÖØ»æÒÔ½â¾öÕâ¸öÎÊÌ⣬ÕâÀïÍÆ¼öÒ»¸öÆæ¹ÖµÄhackд·¨£ºÍ¬Ê±ÉèÖÃÈý¸öimageÔªËØµÄsrcÊôÐÔ£¬±ã¿ÉÒÔÈ«·¶Î§½â¾ö¸ÃÄÑÌ⣬
¸Ã·½°¸±»ÍŶÓ֤ʵ²¢µÃµ½Ó¦Óá£
//ÈýͼƬsrc£¬Òý·¢reflow£¬´¦Àífixed·½°¸¹ßÐÔÎÊÌâ
var el = this.els.ctlc.find('img');
$(el[0]).attr("src", 'http://res.m.ctrip.com/html5/Content/images/144.png');
$(el[1]).attr("src", 'http://res.m.ctrip.com/html5/Content/images/144.png');
$(el[2]).attr("src", 'http://res.m.ctrip.com/html5/Content/images/144.png');
|
ÁíÍ⣬ÉÏͼÖеÄtab±êÇ©ÏÂÃæµÄÀ¶Ïß¾ßÓж¯»£¬µ«ÊÇÔÚСÃ×»òÕßÈýÐÇÊÖ»úÉÏ¿ÉÄܲ»»áÒÆ¶¯£¬Õâ¸öʱºòÒ²¿ÉÒÔ¶¯Ì¬ÒýÆðreflow½â¾öÕâ¸öBUG¡£
ÆäËü
CSSÑ¡ÔñÆ÷¾¡Á¿Ê¹ÓÃidÓëclass£¬±ÜÃâ¹ý¶È²ãµþ
±ÜÃâʹÓÃÊýÖµ£¬±ÈÈ磺border: none²»»áÒýÆðäÖȾ£¬¶øboder:
0ȇ
¶¯»Ê±ºòÈÃÔªËØÍÑÀëÎĵµÁ÷£¬ÒÔÃâµ¼Ö´óÁ¿reflow
±ÜÃâÖðÌõÐÞ¸ÄDOMÑùʽ£¬¸ÄÒÔclassNameʵÏÖͬÑù¹¦ÄÜ
²Ù×÷DOMʱ½«displayÉèÖÃΪnone£¬ÒòΪÕâÖÖÔªËØ²»»áÓ°ÏìäÖȾ£¬»òÕß²Ù×÷fragment¶ÔÏóÈ¡´ú²Ù×÷ÏÔʾÔÚÒ³ÃæÉϵÄDOM
±ÜÃ⽫»ñÈ¡DOMÑùʽÊôÐԵIJÙ×÷дÔÚÑ»·ÖУ¬¿ÉÄÜÒýÆðÖØ¸´reflow
ÄÚ´æ×ÊÔ´ÓÅ»¯
ÒÆ¶¯¶ËµÄjavascript
Ê×ÏÈ£¬Òƶ¯¶ËµÄÐÔÄÜÓëPC¶ËµÄÐÔÄÜÍêÈ«²»ÔÚÒ»¸öÊýÁ¿¼¶ÉÏ£¬±ÈÈ磬ÎÒ¸ç×ö¹ýÒ»¸ö²âÊÔ£¬Ê¹ÓÃinnerHTML»æÖÆ´ó¶Î£¬Ö®ºóÏë»ñÈ¡HTMLµÄID½Úµã£¬ÊÂʵÉÏÊÇ»ñÈ¡²»µ½µÄ£¬ÕâÖÖÎÊÌâÔÚµ¥Ò³Ä£Äâ¶àÒ³£¬¶¯Ì¬´´½¨DOM»á¾³£·¢Éú¡£
var element = $('...´óÁ¿½á¹¹... ');
$(root).html(element)
$('#test) //Ϊ¿Õ
|
ÕâÀàÎÊÌâ·ËÒÄËù˼£¬ÒòÎªÒ³ÃæUIäÖȾÓëDOM²Ù×÷ÊÇ»¥³âµÄ£¬µ«ÊǾÍËã³öÏÖÁËÕâ¸öÎÊÌ⣬һ¸ö½â¾ö·½°¸ÊÇʹÓÃsettimeout£¬¸üºÃµÄ·½°¸ÊÇʹÓÃDOMNodeRemovedʼþ¼à¿ØÒ³ÃæDOM¸Ä±ä£¬½«ÎÒÃǵÄDOM²Ù×÷»Øµ÷·ÅÈëÒÔÈ·±£äÖȾ½áÊø¡£
ÒÔÉÏÎÊÌâÖ»ÊÇΪÁË˵Ã÷ÒÆ¶¯¶ËµÄÐÔÄÜÎÊÌ⣬ÕâÀàÐÔÄÜÎÊÌâ»áµ¼ÖºܶàĪÃûÆäÃîµÄÎÊÌ⣬¶øÇҺܶàÓëäÖȾÓйء£µ«ÊÇÕâÒ²´Ó²àÃæËµÃ÷ÁËÒÆ¶¯¶Ë×ÊÔ´µÄ½ôȱ£¬ÈôÊÇheapÖµ¹ý´ó£¬»áµ¼Ö²Ù×÷³öÏÖ¿¨µÄÏÖÏ󣬸üÓÐÉõÕߣ¬»áÒýÆðÒ³Ãæ¼ÙËÀÖ±½ÓÍ˳ö¡£
webappµÄģʽ£¬ÍêÈ«ÒÀÀµÓÚä¯ÀÀÆ÷µÄÀ¬»ø»ØÊÕ£¬»ù±¾¾ÍÊÇ×÷ËÀ£¬ÒòΪ´«Í³Ò³ÃæÒ»µ©Ë¢ÐÂÒ³ÃæÕû¸ö×ÊÔ´ÍêÈ«ÊÍ·Å£¬¶øwebappûÓÐË¢ÐÂÕâÀà²Ù×÷£¬Ö»ÓÐÒ»¸ö״̬µ½Á½Ò»¸ö״̬£¬²»Ïà¹ØµÄÄÚ´æ»á±£Áô£¬×ÊÔ´±ØÐëÊÖ¶¯ÊÍ·Å£¬»òÕß˵£¬¿ò¼Ü±ØÐëÌṩÀ¬»øÊͷŵĻúÖÆ¡£
Õâ¸öÓÉͼ±íheapÖµ±ä»¯¿ÉÒÔÇåÎú¿´³ö¡£
¶øviewÇл»¹ý³ÌÖУ¬²»ÓõÄ×ÊÔ´ÈôÊDz»ÊÖ¶¯ÉèÖÃΪnull»áµ¼Ö±äÁ¿µÃ²»µ½»ØÊÕ±ãÍÑÀë¿ò¼Ü¿ØÖƶøÊ§¿ØÁË¡£ËùÒÔÎÒÃÇÔÚwebappµÄ¹ý³ÌÖÐÐèҪעÒ⣺
ÊÍ·ÅûÓÐʹÓõıհü
¹Û²ìÕßÐèÒªµÃµ½ÇåÀí
ÊͷŶ¨Ê±Æ÷
viewÇл»¹ý³ÌÖУ¬ÔÚdestroyÖÐÊÍ·ÅviewÏà¹Ø×ÊÔ´
¡ª¡ª¸Ðл°¬Â×ÓÑÇéÖ§Ô®
±Õ°üÏÝÚå
ÔÚÎÒÃǹ¤×÷¹ý³ÌÖУ¬ÀÄÓþֲ¿±äÁ¿¼«ÓпÉÄÜÒýÆð±Õ°üÏÝÚ壬Õâ¸öÎÊÌâ²»Ö¹ÊÇÐÔÄÜÎÊÌ⣬ÔÚÂß¼ÉÏ»áÒýÆð´íÎ󣬶øÇÒ²»Ò×·¢ÏÖ£¬±ÈÈ磬ÔÚAMD±Õ°üÖÐʹÓÃÒ»¸ö¾Ö²¿±äÁ¿
var _attributes = {};
callback ($.extend(_attributes, opts));
|
Èç´Ë²Ù×÷£¬»á¸Ä±ä_ attributes¶ÔÏó£¬ÈôÊÇÒ»¸öʵÀý»¹ÎÞÎÊÌ⣬µ«ÊÇÁ½¸öʵÀýµÄ»°±ã»á·¢Éú±äÁ¿ÎÛȾ¡£
ÕâÖ»ÊÇÒ»¸öÀý×Ó£¬µ«ÊÇÔÚ´úÂëÖÐÀÄÓþֲ¿±äÁ¿¿ÉÄÜ»áÒýÆð²»±ØÒªµÄÒþÓÇ£¬½äÖ®É÷Ö®¡£
webapp×ÊÔ´ÊÍ·Å
¸ù¾ÝÇ°ÃæµÄÃèÊö£¬ÎÒÃÇ¿ÉÒԵóöÒ»¸ö½áÂÛ£º
ÎÞÂÛÊÇview»¹ÊÇUI×é¼þÎÒÃǵÃÌṩͳһµÄdestroy½Ó¿Ú£¬ÒÔ±ãÈÃÓû§¼Ì³ÐÊÍ·Å×ÊÔ´¡£
ÈôÊÇviewµÄ×ÊÔ´µÃ²»µ½Êͷŵ¼ÖÂheapÖµ¹ý¸ß£¬webappģʽµÄÍøÕ¾Æä¼ÛÖµ´ó¼õ¡£ÕâÀïÓм¸µã¿ÉÒÔ¿¼ÂÇ£º
webappÖÐviewʵÀý±£´æ²»³¬¹ý5¸ö£¬¶àÁ˱ãÊÍ·Ådom½á¹¹ÒÔ¼°ÄÚ´æÒýÓã¨ÁÙ½çÖµ×Ô¼ºÅжÏ×îÓÅ£©
viewÒþ²ØÊ±ÊÍ·ÅÄÚ²¿×ÊÔ´£¬½â³ýDOMʼþ¾ä±ú
UI×é¼þÓëviewÏàͬ£¬ÐèҪͳһÊÍ·Å»úÖÆ
µ«Êǵ¥Ò³Ó¦ÓÃÓÉÓÚÒ³Ãæ²»»áˢУ¬×ÜÓÐһЩ×ÊÔ´µÃ²»µ½ÊÍ·Å£¬´ËÎÊÌâÈÎÖØµÀÔ¶£¬Æ½Ê±±àд¹ý³Ì¿ÉÒÔ×öÒÔÏÂÓÅ»¯£º
ʹÓú¯ÊýÌæ»»Âß¼
ÈÃÎÒÃǵĺ¯Êý²úÉúÒ»¸ö·µ»ØÖµÌæ»»º¯ÊýÖеĴó¶ÎÂß¼£¬ÕâÑùµÄµÚÒ»¸öºÃ´¦±ãÊÇÂß¼ÇåÎú£¬µÚ¶þ¸öºÃ´¦ÊÇÕâЩº¯ÊýÔÚ²»Í¬µÄº¯ÊýÖУ¬Õâ¸öº¯Êý±»Ê¹Óúó±ã»á×Ô¶¯µÃµ½ÊÍ·Å¡£
ÇåÀí±Õ°üÒýÓÃ
µ±Ò»¸ö±Õ°üº¯Êý»òÕßʲôʹÓýáÊøºó£¬Èô²»»áÔÙʹÓ㬱ãÐèÒªÊÖ¶¯ÇåÀí¸Ã±äÁ¿£¬ÒÔ±ã½â³ý±Õ°üÖ®¼äµÄÒýÓùØÏµ£¬´Ó¶øÊÍ·Å×ÊÔ´¡£
ʹÓöÔÏóÊôÐÔ»òÕß·½·¨
Ò»¸ö¶ÔÏó¿ÉÒÔÒýÓÃÆäËû¶ÔÏóµÄÊôÐÔ»òÕß·½·¨£¬±ÈÈçobj.foo = thatObj;ÕâÖÖÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔËæÊ±É¾³ý¶ÔÏó½â³ýÒýÓùØÏµ£¬È»ºó±ã¿ÉÒÔÇåÀí×ÊÔ´¡£
¶¯»Óë¼ÙËÀ
¶¯»¶øÑÔ½¨Òé²ÉÓÃCSS3ʵÏÖ¶¯»£¬CSS3ÖÐÓÖÍÆ¼ö²ÉÓÃ×îеĽӿڣ¬±ÈÈçʹÓÃtransformÈ¡´útop/lelf²Ù×÷£¬ÕâÑù²Ù×÷ЧÂʸãµÃ¶à¡£
ÈôÊDzÉÓö¯»¿ÉÒÔ½«¶ÔÓ¦ÔªËØÉèÖÃΪabsoluteÒÔ¼õÉÙ»ØÁ÷£¬ÁíÍâ×î¹Ø¼üÒ»µã»¹ÊÇ
±ÜÃâÒÆ¶¯DOMÊ÷¹ý¶àµÄ½Úµã£¬Õâ¸öʱºòÐèÒª²µ»Ø²úÆ·ÎÞÀíÐèÇ󣬱ÈÈ磺
²úÆ·ÒªÇóÈÕÆÚ¹öÆÁ×é¼þ£¬ÏÔʾ°ëÄêµÄÊý¾Ý£¬Õâ°ëÄêµÄÊý¾Ý±ãÊÇ180¸öDOMÊ÷
Õâ¸ö¼¶±ðµÄDOMÒ»µ©Òƶ¯Õû¸öÊÖ»ú»áÖ±½Ó¿¨ËÀ£¬ÉõÖÁ¹¹½¨DOMÊ÷£¬äÖÈ¾Ò³ÃæÒ²»á³öÏÖ¼ÙËÀÏÖÏ󣬸ÃÎÊÌâÐèÒª¹æ±Ü¡£
Application Cache
Application CacheÊÇHTML5ΪwebappÀëÏßʹÓöøÔö¼ÓµÄAPI£¬Óëlocalstorage¡¢cookieµÈ²»Í¬£¬Application
Cache´æ´¢µÄÊÇһϵÁÐÇëÇó×ÊÔ´ÔÊÐíä¯ÀÀÆ÷ÔÚÇëÇó×ÊԴʱ²»±ØÍ¨¹ýÍøÂ磬Éè¼ÆµÃµ±µÄ»°¿ÉÒÔʵÏÖÀëÏßÓ¦Óá£
ʹÓÃApplication CacheÖ÷ÒªÊÇÔÚÍøÂçÐÔÄÜÉÏÌáÉý£¬ÓÐЧ½µµÍÁËÍøÂçÑÓ³Ù£¬ÌáÉýÇëÇó¼ÓËÙ

µ«ÊÇÒ²»áÓÐһЩÎÊÌ⣬±ÈÈçа汾»º´æ²»Á¢¿ÌÉúЧ£»manifestÖеÄÇëÇó·¾¶Ïà¶ÔÓÚmanifestÎļþ£¬¶ø·Ç¼ÓÔØÒ³Ãæ£»¸üÐÂ/»Ø¹öµÈÎÊÌ⣬ËùÒÔʹÓÃÓë·ñ»¹µÃÂÛÖ¤¡£
ÌåÑéÓÅ»¯
ÇøÓò¹ö¶¯
ÒÆ¶¯¶Ë¾³£ÐèҪʵÏÖÇøÓò¹ö¶¯µÄÐèÇ󣬳ÉÊìµÄÒ²ÓÐIScroll½â¾ö·½°¸£¬µ«ÊÇ·½°¸È´²»ÀíÏë¡£

¾Í¹Ù·½µÄÀý×Ó±ã»á³öÏÖÒÔÏÂÎÊÌ⣺
Í·²¿Ïûʧ
ż¶û²»ÄÜÏÔʾÎı¾¿ò½¹µã£¬»òÕß½¹µã´íλ
ÈôÊÇÒÔÉÏÎÊÌâ¿ÉºöÂÔ£¬µ«ÊÇÎı¾¿ò²»¼ûÁËÕâÖÖÊÂÇ飬ÎÒÊDz»»á½ÓÊܵÄ
µ¼ÖµÄÔÒòÓë×éÖ¯ä¯ÀÀÆ÷ĬÈÏʼþÓйأ¬ËùÒÔ£¬ÎÒÕâÀï²»Ì«ÍÆ¼ö¸÷λ´ó·¶Î§µÄʹÓÃÇøÓò¹ö¶¯£¬¶ø¸ÄÔÚÇøÓòʹÓã¬
¾ÍÈ¥ÄĶùµÄipad°æ±¾ÔÚÒ»¸ö¾ßÓÐÎı¾¿òµÄµØ·½Ê¹ÓÃÁËIScroll£¬ÆäÌá¸ßµÄÓû§ÌåÑéÓëµ¼ÖµÄÎÊÌâÒ»ÑùÒýÈËÈëʤ¡£
ÊÂʵÉÏ£¬Ð¡îμ°ÆäÍÆ³çIScroll¿â£¬Ëä˵ËûÓÐÕâÑùÄÇÑùÎÊÌ⣬µ«ÊÇ£¬IScrollÊÇ×îÓпÉÄÜ´øÀ´Òƶ¯¶Ë¸ïÃüµÄ¿â£¬ÒòΪËû¿ÉÒÔ£º
¢Ù ½â¾öwebappÇøÓò¹ö¶¯
¢Ú ±äÏà½â¾öfixedÎÊÌâ
¢Û ½â¾ö¶¯»¹ý³Ì´øÀ´µÄ³¤¶ÌÒ³ÎÊÌâ
×ܶøÑÔÖ®£¬IScroll·½°¸µÄÌá³ö£¬ÊÇÈÃwebappæÇÃÀnative app¿¿½üÁËÒ»´ó²½£¬ÕæÕýµÄƽÆðÆ½×ø»¹ÐèÒªä¯ÀÀÆ÷µÄÖ§Ô®
µã»÷ÏìÓ¦
click±¾ÉíÔÚÒÆ¶¯¶ËÏìÓ¦ÊÇûÓÐÎÊÌâµÄ£¬µ«ÊÇÎÒÃǵã»÷ÏÂÀ´300ms µÄÑÓ³ÙÈ´ÊÇÊÂʵ£¬ÕâÖÖÊÂʵÔì³ÉµÄÔÒò¾ÍÊÇ
ÊÖ»úÐèÒªÖªµÀÄãÊDz»ÊÇÏëË«»÷·Å´óÍøÒ³ÄÚÈÝ
ËùÒÔclickµã»÷ÏìÓ¦Âý£¬¶øtouchÈ´²»»áÓÐÕâÑùµÄÏÞÖÆ£¬ÓÚÊÇÒÆ¶¯¶ËµÄtouchÏ൱ÊÜ»¶Ó£¬ÖÁÓÚÊó±êÂý£¬Ëû¾¿¾¹ÓжàÂý£¬ÎÒ»á¸æËßÄãÿ´Î»áÂý300ms



ËùÒÔ¸ÃÎÊÌâÐèÒª´¦Àí£¬¾ßÌå¼û£ºhttp://www.cnblogs.com/yexiaochai/p/3462657.html#_h2_7
½áÓï
webapp²»ÊÇÒ»ÌìÁ½ÌìµÄÊÂÇ飬×ÜÓÐÒ»Ì죬webapp»áÕÀ·ÅÆäÓ¦Óеķç²É£¡
|