1. <legend id="LIXnH"><legend id="LIXnH"></legend><li id="LIXnH"><ol id="LIXnH"><bdo id="LIXnH"></bdo><tr id="LIXnH"></tr></ol><button id="LIXnH"></button></li><b id="LIXnH"><tr id="LIXnH"><audio id="LIXnH"><b id="LIXnH"></b></audio><dd id="LIXnH"><dfn id="LIXnH"><keygen id="LIXnH"></keygen></dfn></dd></tr><samp id="LIXnH"></samp></b><td id="LIXnH"><dfn id="LIXnH"></dfn></td></legend>

    2. <fieldset id="LIXnH"><param id="LIXnH"></param><source id="LIXnH"></source></fieldset>
      1. <button id="LIXnH"><output id="LIXnH"><input id="LIXnH"><dd id="LIXnH"><button id="LIXnH"><thead id="LIXnH"><ruby id="LIXnH"></ruby></thead><form id="LIXnH"></form><button id="LIXnH"></button></button><colgroup id="LIXnH"></colgroup></dd></input></output></button>

            |
            |
            |
            |
            ¹«ÖںžØÕó

            ¡¾¿ª·¢±Ø¿´¡¿ÄãÕæµÄÁË½â»ØÁ÷ºÍÖØ»æÂð£¿

            »ØÁ÷ºÍÖØ»æ¿ÉÒÔ˵ÊÇÿһ¸öweb¿ª·¢Õß¶¼¾­³£Ìýµ½µÄÁ½¸ö´ÊÓ¿ÉÊÇ¿ÉÄÜÓкܶàÈ˲»ÊǺÜÇå³þÕâÁ½²½¾ßÌå×öÁËʲôÊÂÇé¡£×î½üÓÐ¿Õ¶ÔÆä½øÐÐÁËһЩÑо¿£¬¿´ÁËһЩ²©¿ÍºÍÊé¼®£¬ÕûÀíÁËһЩÄÚÈݲ¢ÇÒ½áºÏһЩÀý×Ó£¬Ð´ÁËÕâÆªÎÄÕ£¬Ï£Íû¿ÉÒÔ°ïÖúµ½´ó¼Ò¡£

            ×÷ÕߣºÌÚÑ¶ÔÆ¼ÓÉçÇøÀ´Ô´£ºsegmentfault|2021-04-18 14:50

            »ØÁ÷ºÍÖØ»æ¿ÉÒÔ˵ÊÇÿһ¸öweb¿ª·¢Õß¶¼¾­³£Ìýµ½µÄÁ½¸ö´ÊÓ¿ÉÊÇ¿ÉÄÜÓкܶàÈ˲»ÊǺÜÇå³þÕâÁ½²½¾ßÌå×öÁËʲôÊÂÇé¡£×î½üÓÐ¿Õ¶ÔÆä½øÐÐÁËһЩÑо¿£¬¿´ÁËһЩ²©¿ÍºÍÊé¼®£¬ÕûÀíÁËһЩÄÚÈݲ¢ÇÒ½áºÏһЩÀý×Ó£¬Ð´ÁËÕâÆªÎÄÕ£¬Ï£Íû¿ÉÒÔ°ïÖúµ½´ó¼Ò¡£

            ä¯ÀÀÆ÷µÄäÖȾ¹ý³Ì

            ±¾ÎÄÏÈ´Óä¯ÀÀÆ÷µÄäÖȾ¹ý³ÌÀ´´ÓÍ·µ½Î²µÄ½²½âһϻØÁ÷ÖØ»æ£¬Èç¹û´ó¼ÒÏëÖ±½Ó¿´ÈçºÎ¼õÉÙ»ØÁ÷ºÍÖØ»æ£¬ÓÅ»¯ÐÔÄÜ£¬¿ÉÒÔÌøµ½ºóÃæ¡££¨Õâ¸öäÖȾ¹ý³ÌÀ´×ÔMDN£©

            ä¯ÀÀÆ÷äÖȾ¹ý³Ì

            Ìí¼ÓÃèÊö

            ´ÓÉÏÃæÕâ¸öͼÉÏ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ä¯ÀÀÆ÷äÖȾ¹ý³ÌÈçÏ£º

            1.  ½âÎöHTML£¬Éú³ÉDOMÊ÷£¬½âÎöCSS£¬Éú³ÉCSSOMÊ÷
            2.  ½«DOMÊ÷ºÍCSSOMÊ÷½áºÏ£¬Éú³ÉäÖȾÊ÷(Render Tree)
            3.  Layout(»ØÁ÷):¸ù¾ÝÉú³ÉµÄäÖȾÊ÷£¬½øÐлØÁ÷(Layout)£¬µÃµ½½ÚµãµÄ¼¸ºÎÐÅÏ¢£¨Î»Ö㬴óС£©
            4.  Painting(ÖØ»æ):¸ù¾ÝäÖȾÊ÷ÒÔ¼°»ØÁ÷µÃµ½µÄ¼¸ºÎÐÅÏ¢£¬µÃµ½½ÚµãµÄ¾ø¶ÔÏñËØ
            5.  Display:½«ÏñËØ·¢Ë͸øGPU£¬Õ¹Ê¾ÔÚÒ³ÃæÉÏ¡££¨ÕâÒ»²½Æäʵ»¹ÓкܶàÄÚÈÝ£¬±ÈÈç»áÔÚGPU½«¶à¸öºÏ³É²ãºÏ²¢ÎªÍ¬Ò»¸ö²ã£¬²¢Õ¹Ê¾ÔÚÒ³ÃæÖС£¶øcss3Ó²¼þ¼ÓËÙµÄÔ­ÀíÔòÊÇн¨ºÏ³É²ã£¬ÕâÀïÎÒÃDz»Õ¹¿ª£¬Ö®ºóÓлú»á»áдһƪ²©¿Í£©

            äÖȾ¹ý³Ì¿´ÆðÀ´ºÜ¼òµ¥£¬ÈÃÎÒÃÇÀ´¾ßÌåÁ˽âÏÂÿһ²½¾ßÌå×öÁËʲô¡£

            Éú³ÉäÖȾÊ÷

            äÖȾÊ÷¹¹½¨

            ΪÁ˹¹½¨äÖȾÊ÷£¬ä¯ÀÀÆ÷Ö÷ÒªÍê³ÉÁËÒÔϹ¤×÷£º

            1.  ´ÓDOMÊ÷µÄ¸ù½Úµã¿ªÊ¼±éÀúÿ¸ö¿É¼û½Úµã¡£
            2.  ¶ÔÓÚÿ¸ö¿É¼ûµÄ½Úµã£¬ÕÒµ½CSSOMÊ÷ÖжÔÓ¦µÄ¹æÔò£¬²¢Ó¦ÓÃËüÃÇ¡£
            3.  ¸ù¾Ýÿ¸ö¿É¼û½ÚµãÒÔ¼°Æä¶ÔÓ¦µÄÑùʽ£¬×éºÏÉú³ÉäÖȾÊ÷¡£

            ***²½ÖУ¬¼ÈȻ˵µ½ÁËÒª±éÀú¿É¼ûµÄ½Úµã£¬ÄÇôÎÒÃǵÃÏÈÖªµÀ£¬Ê²Ã´½ÚµãÊDz»¿É¼ûµÄ¡£²»¿É¼ûµÄ½Úµã°üÀ¨£º

            •  Ò»Ð©²»»áäÖȾÊä³öµÄ½Úµã£¬±ÈÈçscript¡¢meta¡¢linkµÈ¡£
            •  Ò»Ð©Í¨¹ýcss½øÐÐÒþ²ØµÄ½Úµã¡£±ÈÈçdisplay:none¡£×¢Ò⣬ÀûÓÃvisibilityºÍopacityÒþ²ØµÄ½Úµã£¬»¹ÊÇ»áÏÔʾÔÚäÖȾÊ÷ÉϵÄ¡£Ö»ÓÐdisplay:noneµÄ½Úµã²Å²»»áÏÔʾÔÚäÖȾÊ÷ÉÏ¡£

            ´ÓÉÏÃæµÄÀý×ÓÀ´½²£¬ÎÒÃÇ¿ÉÒÔ¿´µ½span±êÇ©µÄÑùʽÓÐÒ»¸ödisplay:none£¬Òò´Ë£¬Ëü×îÖÕ²¢Ã»ÓÐÔÚäÖȾÊ÷ÉÏ¡£

            ×¢Ò⣺äÖȾÊ÷Ö»°üº¬¿É¼ûµÄ½Úµã

            »ØÁ÷

            Ç°ÃæÎÒÃÇͨ¹ý¹¹ÔìäÖȾÊ÷£¬ÎÒÃǽ«¿É¼ûDOM½ÚµãÒÔ¼°Ëü¶ÔÓ¦µÄÑùʽ½áºÏÆðÀ´£¬¿ÉÊÇÎÒÃÇ»¹ÐèÒª¼ÆËãËüÃÇÔÚÉ豸ÊÓ¿Ú(viewport)ÄÚµÄÈ·ÇÐλÖúʹóС£¬Õâ¸ö¼ÆËãµÄ½×¶Î¾ÍÊÇ»ØÁ÷¡£

            ΪÁËŪÇåÿ¸ö¶ÔÏóÔÚÍøÕ¾ÉϵÄÈ·ÇдóСºÍλÖã¬ä¯ÀÀÆ÷´ÓäÖȾÊ÷µÄ¸ù½Úµã¿ªÊ¼±éÀú£¬ÎÒÃÇ¿ÉÒÔÒÔÏÂÃæÕâ¸öʵÀýÀ´±íʾ£º

            1. <!DOCTYPE html>  
            2. <html>  
            3.   <head>  
            4.     <meta name="viewport" content="width=device-width,initial-scale=1">  
            5.     <title>Critial Path: Hello world!</title>  
            6.   </head>  
            7.   <body>  
            8.     <div style="width: 50%">  
            9.       <div style="width: 50%">Hello world!</div>  
            10.     </div>  
            11.   </body>  
            12. </html> 

            ÎÒÃÇ¿ÉÒÔ¿´µ½£¬***¸ödiv½«½ÚµãµÄÏÔʾ³ß´çÉèÖÃΪÊÓ¿Ú¿í¶ÈµÄ50%£¬µÚ¶þ¸ödiv½«Æä³ß´çÉèÖÃΪ¸¸½ÚµãµÄ50%¡£¶øÔÚ»ØÁ÷Õâ¸ö½×¶Î£¬ÎÒÃǾÍÐèÒª¸ù¾ÝÊÓ¿Ú¾ßÌåµÄ¿í¶È£¬½«ÆäתΪʵ¼ÊµÄÏñËØÖµ¡££¨ÈçÏÂͼ£©

            »ØÁ÷

            ÖØ»æ

            ×îÖÕ£¬ÎÒÃÇͨ¹ý¹¹ÔìäÖȾÊ÷ºÍ»ØÁ÷½×¶Î£¬ÎÒÃÇÖªµÀÁËÄÄЩ½ÚµãÊǿɼûµÄ£¬ÒÔ¼°¿É¼û½ÚµãµÄÑùʽºÍ¾ßÌåµÄ¼¸ºÎÐÅÏ¢(λÖᢴóС)£¬ÄÇôÎÒÃǾͿÉÒÔ½«äÖȾÊ÷µÄÿ¸ö½Úµã¶¼×ª»»ÎªÆÁÄ»ÉϵÄʵ¼ÊÏñËØ£¬Õâ¸ö½×¶Î¾Í½Ð×öÖØ»æ½Úµã¡£

            ¼ÈȻ֪µÀÁËä¯ÀÀÆ÷µÄäÖȾ¹ý³Ìºó£¬ÎÒÃǾÍÀ´Ì½ÌÖÏ£¬ºÎʱ»á·¢Éú»ØÁ÷ÖØ»æ¡£

            ºÎʱ·¢Éú»ØÁ÷ÖØ»æ

            ÎÒÃÇÇ°ÃæÖªµÀÁË£¬»ØÁ÷ÕâÒ»½×¶ÎÖ÷ÒªÊǼÆËã½ÚµãµÄλÖúͼ¸ºÎÐÅÏ¢£¬ÄÇôµ±Ò³Ãæ²¼¾ÖºÍ¼¸ºÎÐÅÏ¢·¢Éú±ä»¯µÄʱºò£¬¾ÍÐèÒª»ØÁ÷¡£±ÈÈçÒÔÏÂÇé¿ö£º

            •  Ìí¼Ó»òɾ³ý¿É¼ûµÄDOMÔªËØ
            •  ÔªËصÄλÖ÷¢Éú±ä»¯
            •  ÔªËصijߴ緢Éú±ä»¯£¨°üÀ¨Íâ±ß¾à¡¢Äڱ߿ò¡¢±ß¿ò´óС¡¢¸ß¶ÈºÍ¿í¶ÈµÈ£©
            •  ÄÚÈÝ·¢Éú±ä»¯£¬±ÈÈçÎı¾±ä»¯»òͼƬ±»ÁíÒ»¸ö²»Í¬³ß´çµÄͼƬËùÌæ´ú¡£
            •  Ò³ÃæÒ»¿ªÊ¼äÖȾµÄʱºò£¨Õâ¿Ï¶¨±ÜÃâ²»ÁË£©
            •  ä¯ÀÀÆ÷µÄ´°¿Ú³ß´ç±ä»¯£¨ÒòΪ»ØÁ÷ÊǸù¾ÝÊӿڵĴóСÀ´¼ÆËãÔªËØµÄλÖúʹóСµÄ£©

            ×¢Ò⣺»ØÁ÷Ò»¶¨»á´¥·¢Öػ棬¶øÖػ治һ¶¨»á»ØÁ÷

            ¸ù¾Ý¸Ä±äµÄ·¶Î§ºÍ³Ì¶È£¬äÖȾÊ÷Öлò´ó»òСµÄ²¿·ÖÐèÒªÖØÐ¼ÆË㣬ÓÐЩ¸Ä±ä»á´¥·¢Õû¸öÒ³ÃæµÄÖØÅÅ£¬±ÈÈ磬¹ö¶¯Ìõ³öÏÖµÄʱºò»òÕßÐÞ¸ÄÁ˸ù½Úµã¡£

            ä¯ÀÀÆ÷µÄÓÅ»¯»úÖÆ

            ÏÖ´úµÄä¯ÀÀÆ÷¶¼ÊǺܴÏÃ÷µÄ£¬ÓÉÓÚÿ´ÎÖØÅŶ¼»áÔì³É¶îÍâµÄ¼ÆËãÏûºÄ£¬Òò´Ë´ó¶àÊýä¯ÀÀÆ÷¶¼»áͨ¹ý¶ÓÁл¯Ð޸IJ¢ÅúÁ¿Ö´ÐÐÀ´ÓÅ»¯ÖØÅŹý³Ì¡£ä¯ÀÀÆ÷»á½«Ð޸IJÙ×÷·ÅÈëµ½¶ÓÁÐÀֱµ½¹ýÁËÒ»¶Îʱ¼ä»òÕß²Ù×÷´ïµ½ÁËÒ»¸öãÐÖµ£¬²ÅÇå¿Õ¶ÓÁС£µ«ÊÇ£¡µ±Äã»ñÈ¡²¼¾ÖÐÅÏ¢µÄ²Ù×÷µÄʱºò£¬»áÇ¿ÖÆ¶ÓÁÐˢУ¬±ÈÈçµ±Äã·ÃÎÊÒÔÏÂÊôÐÔ»òÕßʹÓÃÒÔÏ·½·¨£º

            •  offsetTop¡¢offsetLeft¡¢offsetWidth¡¢offsetHeight
            •  scrollTop¡¢scrollLeft¡¢scrollWidth¡¢scrollHeight
            •  clientTop¡¢clientLeft¡¢clientWidth¡¢clientHeight
            •  getComputedStyle()
            •  getBoundingClientRect
            •  ¾ßÌå¿ÉÒÔ·ÃÎÊÕâ¸öÍøÕ¾£º//gist.github.com/pauli...

            ÒÔÉÏÊôÐԺͷ½·¨¶¼ÐèÒª·µ»Ø***µÄ²¼¾ÖÐÅÏ¢£¬Òò´Ëä¯ÀÀÆ÷²»µÃ²»Çå¿Õ¶ÓÁУ¬´¥·¢»ØÁ÷ÖØ»æÀ´·µ»ØÕýÈ·µÄÖµ¡£Òò´Ë£¬ÎÒÃÇÔÚÐÞ¸ÄÑùʽµÄʱºò£¬***±ÜÃâʹÓÃÉÏÃæÁгöµÄÊôÐÔ£¬ËûÃǶ¼»áË¢ÐÂäÖȾ¶ÓÁС£Èç¹ûҪʹÓÃËüÃÇ£¬***½«Öµ»º´æÆðÀ´¡£

            ¼õÉÙ»ØÁ÷ºÍÖØ»æ

            ºÃÁË£¬µ½ÁËÎÒÃǽñÌìµÄÖØÍ·Ï·£¬Ç°ÃæËµÁËÕâô¶à±³¾°ºÍÀíÂÛ֪ʶ£¬½ÓÏÂÀ´ÈÃÎÒÃÇ̸̸ÈçºÎ¼õÉÙ»ØÁ÷ºÍÖØ»æ¡£

            ×îС»¯ÖØ»æºÍÖØÅÅ

            ÓÉÓÚÖØ»æºÍÖØÅÅ¿ÉÄÜ´ú¼Û±È½Ï°º¹ó£¬Òò´Ë***¾ÍÊÇ¿ÉÒÔ¼õÉÙËüµÄ·¢Éú´ÎÊý¡£ÎªÁ˼õÉÙ·¢Éú´ÎÊý£¬ÎÒÃÇ¿ÉÒԺϲ¢¶à´Î¶ÔDOMºÍÑùʽµÄÐ޸ģ¬È»ºóÒ»´Î´¦Àíµô¡£¿¼ÂÇÕâ¸öÀý×Ó

            1. const el = document.getElementById('test');  
            2. el.style.padding = '5px' 
            3. el.style.borderLeft = '1px' 
            4. el.style.borderRight = '2px'

            Àý×ÓÖУ¬ÓÐÈý¸öÑùʽÊôÐÔ±»ÐÞ¸ÄÁË£¬Ã¿Ò»¸ö¶¼»áÓ°ÏìÔªËØµÄ¼¸ºÎ½á¹¹£¬ÒýÆð»ØÁ÷¡£µ±È»£¬´ó²¿·ÖÏÖ´úä¯ÀÀÆ÷¶¼¶ÔÆä×öÁËÓÅ»¯£¬Òò´Ë£¬Ö»»á´¥·¢Ò»´ÎÖØÅÅ¡£µ«ÊÇÈç¹ûÔھɰæµÄä¯ÀÀÆ÷»òÕßÔÚÉÏÃæ´úÂëÖ´ÐеÄʱºò£¬ÓÐÆäËû´úÂë·ÃÎÊÁ˲¼¾ÖÐÅÏ¢(ÉÏÎÄÖеĻᴥ·¢»ØÁ÷µÄ²¼¾ÖÐÅÏ¢)£¬ÄÇô¾Í»áµ¼ÖÂÈý´ÎÖØÅÅ¡£

            Òò´Ë£¬ÎÒÃÇ¿ÉÒԺϲ¢ËùÓеĸıäÈ»ºóÒÀ´Î´¦Àí£¬±ÈÈçÎÒÃÇ¿ÉÒÔ²ÉÈ¡ÒÔϵķ½Ê½£º

            •  Ê¹ÓÃcssText 
            1. const el = document.getElementById('test');   
            2. el.style.cssText += 'border-left: 1px; border-right: 2px; padding: 5px;';
            •  ÐÞ¸ÄCSSµÄclass 
            1. const el = document.getElementById('test');  
            2. el.className += ' active'; 

            ÅúÁ¿ÐÞ¸ÄDOM

            µ±ÎÒÃÇÐèÒª¶ÔDOM¶ÔһϵÁÐÐ޸ĵÄʱºò£¬¿ÉÒÔͨ¹ýÒÔϲ½Öè¼õÉÙ»ØÁ÷ÖØ»æ´ÎÊý£º

            1.  Ê¹ÔªËØÍÑÀëÎĵµÁ÷
            2.  ¶ÔÆä½øÐжà´ÎÐÞ¸Ä
            3.  ½«ÔªËØ´ø»Øµ½ÎĵµÖС£

            ¸Ã¹ý³ÌµÄ***²½ºÍµÚÈý²½¿ÉÄÜ»áÒýÆð»ØÁ÷£¬µ«ÊǾ­¹ý***²½Ö®ºó£¬¶ÔDOMµÄËùÓÐÐ޸ͼ²»»áÒýÆð»ØÁ÷ÖØ»æ£¬ÒòΪËüÒѾ­²»ÔÚäÖȾÊ÷ÁË¡£

            ÓÐÈýÖÖ·½Ê½¿ÉÒÔÈÃDOMÍÑÀëÎĵµÁ÷£º

            •  Òþ²ØÔªËØ£¬Ó¦ÓÃÐ޸ģ¬ÖØÐÂÏÔʾ
            •  Ê¹ÓÃÎĵµÆ¬¶Î(document fragment)ÔÚµ±Ç°DOMÖ®Íâ¹¹½¨Ò»¸ö×ÓÊ÷£¬ÔÙ°ÑËü¿½±´»ØÎĵµ¡£
            •  ½«Ô­Ê¼ÔªËØ¿½±´µ½Ò»¸öÍÑÀëÎĵµµÄ½ÚµãÖУ¬Ð޸Ľڵãºó£¬ÔÙÌæ»»Ô­Ê¼µÄÔªËØ¡£

            ¿¼ÂÇÎÒÃÇÒªÖ´ÐÐÒ»¶ÎÅúÁ¿²åÈë½ÚµãµÄ´úÂ룺

            1. function appendDataToElement(appendToElement, data) {  
            2.     let li;  
            3.     for (let i = 0; i < data.length; i++) {  
            4.         li = document.createElement('li');  
            5.         li.textContent = 'text' 
            6.         appendToElement.appendChild(li);  
            7.     }  
            8.  
            9. const ul = document.getElementById('list');  
            10. appendDataToElement(ul, data); 

            Èç¹ûÎÒÃÇÖ±½ÓÕâÑùÖ´Ðеϰ£¬ÓÉÓÚÿ´ÎÑ­»·¶¼»á²åÈëÒ»¸öеĽڵ㣬»áµ¼ÖÂä¯ÀÀÆ÷»ØÁ÷Ò»´Î¡£

            ÎÒÃÇ¿ÉÒÔʹÓÃÕâÈýÖÖ·½Ê½½øÐÐÓÅ»¯:

            Òþ²ØÔªËØ£¬Ó¦ÓÃÐ޸ģ¬ÖØÐÂÏÔʾ

            Õâ¸ö»áÔÚչʾºÍÒþ²Ø½ÚµãµÄʱºò£¬²úÉúÁ½´Î»ØÁ÷

            1. function appendDataToElement(appendToElement, data) {  
            2.     let li;  
            3.     for (let i = 0; i < data.length; i++) {  
            4.         li = document.createElement('li');  
            5.         li.textContent = 'text' 
            6.         appendToElement.appendChild(li);  
            7.     }  
            8.  
            9. const ul = document.getElementById('list');  
            10. ul.style.display = 'none' 
            11. appendDataToElement(ul, data);  
            12. ul.style.display = 'block'

            ʹÓÃÎĵµÆ¬¶Î(document fragment)ÔÚµ±Ç°DOMÖ®Íâ¹¹½¨Ò»¸ö×ÓÊ÷£¬ÔÙ°ÑËü¿½±´»ØÎĵµ

            1. const ul = document.getElementById('list');  
            2. const fragment = document.createDocumentFragment();  
            3. appendDataToElement(fragment, data);  
            4. ul.appendChild(fragment); 

            ½«Ô­Ê¼ÔªËØ¿½±´µ½Ò»¸öÍÑÀëÎĵµµÄ½ÚµãÖУ¬Ð޸Ľڵãºó£¬ÔÙÌæ»»Ô­Ê¼µÄÔªËØ¡£

            1. const ul = document.getElementById('list');  
            2. const clone = ul.cloneNode(true);  
            3. appendDataToElement(clone, data);  
            4. ul.parentNode.replaceChild(clone, ul); 

            ¶ÔÓÚÉÏÃæÕâÈýÖÖÇé¿ö£¬ÎÒдÁËÒ»¸ödemoÔÚsafariºÍchromeÉϲâÊÔÐÞ¸ÄǰºÍÐ޸ĺóµÄÐÔÄÜ¡£È»¶øÊµÑé½á¹û²»ÊǺÜÀíÏë¡£

            Ô­Òò£ºÔ­ÒòÆäʵÉÏÃæÒ²Ëµ¹ýÁË£¬ÏÖ´úä¯ÀÀÆ÷»áʹÓöÓÁÐÀ´´¢´æ¶à´ÎÐ޸쬽øÐÐÓÅ»¯£¬ËùÒÔ¶ÔÕâ¸öÓÅ»¯·½°¸£¬ÎÒÃÇÆäʵ²»ÓÃÓÅÏÈ¿¼ÂÇ¡£

            ±ÜÃâ´¥·¢Í¬²½²¼¾Öʼþ

            ÉÏÎÄÎÒÃÇ˵¹ý£¬µ±ÎÒÃÇ·ÃÎÊÔªËØµÄһЩÊôÐÔµÄʱºò£¬»áµ¼ÖÂä¯ÀÀÆ÷Ç¿ÖÆÇå¿Õ¶ÓÁУ¬½øÐÐÇ¿ÖÆÍ¬²½²¼¾Ö¡£¾Ù¸öÀý×Ó£¬±ÈÈç˵ÎÒÃÇÏ뽫һ¸öp±êÇ©Êý×éµÄ¿í¶È¸³ÖµÎªÒ»¸öÔªËØµÄ¿í¶È£¬ÎÒÃÇ¿ÉÄÜд³öÕâÑùµÄ´úÂ룺

            1. function initP() {  
            2.     for (let i = 0; i < paragraphs.length; i++) {  
            3.         paragraphs[i].style.width = box.offsetWidth + 'px';  
            4.     }  

            Õâ¶Î´úÂë¿´ÉÏÈ¥ÊÇûÓÐʲôÎÊÌ⣬¿ÉÊÇÆäʵ»áÔì³ÉºÜ´óµÄÐÔÄÜÎÊÌâ¡£ÔÚÿ´ÎÑ­»·µÄʱºò£¬¶¼¶ÁÈ¡ÁËboxµÄÒ»¸öoffsetWidthÊôÐÔÖµ£¬È»ºóÀûÓÃËüÀ´¸üÐÂp±êÇ©µÄwidthÊôÐÔ¡£Õâ¾Íµ¼ÖÂÁËÿһ´ÎÑ­»·µÄʱºò£¬ä¯ÀÀÆ÷¶¼±ØÐëÏÈʹÉÏÒ»´ÎÑ­»·ÖеÄÑùʽ¸üвÙ×÷ÉúЧ£¬²ÅÄÜÏìÓ¦±¾´ÎÑ­»·µÄÑùʽ¶ÁÈ¡²Ù×÷¡£Ã¿Ò»´ÎÑ­»·¶¼»áÇ¿ÖÆä¯ÀÀÆ÷ˢжÓÁС£ÎÒÃÇ¿ÉÒÔÓÅ»¯Îª:

            1. const width = box.offsetWidth;  
            2. function initP() {  
            3.     for (let i = 0; i < paragraphs.length; i++) {  
            4.         paragraphs[i].style.width = width + 'px';  
            5.     }  

            ͬÑù£¬ÎÒҲдÁ˸ödemoÀ´±È½ÏÁ½ÕßµÄÐÔÄܲîÒì¡£Äã¿ÉÒÔ×Ô¼ºµã¿ªÕâ¸ödemoÌåÑéÏ¡£Õâ¸ö¶Ô±ÈµÄÐÔÄܲî¾à¾Í±È½ÏÃ÷ÏÔ¡£

            ¶ÔÓÚ¸´ÔÓ¶¯»­Ð§¹û,ʹÓþø¶Ô¶¨Î»ÈÃÆäÍÑÀëÎĵµÁ÷

            ¶ÔÓÚ¸´ÔÓ¶¯»­Ð§¹û£¬ÓÉÓڻᾭ³£µÄÒýÆð»ØÁ÷ÖØ»æ£¬Òò´Ë£¬ÎÒÃÇ¿ÉÒÔʹÓþø¶Ô¶¨Î»£¬ÈÃËüÍÑÀëÎĵµÁ÷¡£·ñÔò»áÒýÆð¸¸ÔªËØÒÔ¼°ºóÐøÔªËØÆµ·±µÄ»ØÁ÷¡£Õâ¸öÎÒÃǾÍÖ±½ÓÉϸöÀý×Ó¡£

            ´ò¿ªÕâ¸öÀý×Óºó£¬ÎÒÃÇ¿ÉÒÔ´ò¿ª¿ØÖÆÌ¨£¬¿ØÖÆÌ¨ÉÏ»áÊä³öµ±Ç°µÄÖ¡Êý(ËäÈ»²»×¼)¡£

            Ìí¼ÓÃèÊö

            ´ÓÉÏͼÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬Ö¡ÊýÒ»Ö±¶¼Ã»µ½60¡£Õâ¸öʱºò£¬Ö»ÒªÎÒÃǵã»÷Ò»ÏÂÄǸö°´Å¥£¬°ÑÕâ¸öÔªËØÉèÖÃΪ¾ø¶Ô¶¨Î»£¬Ö¡Êý¾Í¿ÉÒÔÎȶ¨60¡£

            css3Ó²¼þ¼ÓËÙ£¨GPU¼ÓËÙ£©

            ±ÈÆð¿¼ÂÇÈçºÎ¼õÉÙ»ØÁ÷ÖØ»æ£¬ÎÒÃǸüÆÚÍûµÄÊÇ£¬¸ù±¾²»Òª»ØÁ÷ÖØ»æ¡£Õâ¸öʱºò£¬css3Ó²¼þ¼ÓËÙ¾ÍÉÁÁÁµÇ³¡À²£¡£¡

            »®Öص㣺

            1. ʹÓÃcss3Ó²¼þ¼ÓËÙ£¬¿ÉÒÔÈÃtransform¡¢opacity¡¢filtersÕâЩ¶¯»­²»»áÒýÆð»ØÁ÷ÖØ»æ ¡£

            2. ¶ÔÓÚ¶¯»­µÄÆäËüÊôÐÔ£¬±ÈÈçbackground-colorÕâЩ£¬»¹ÊÇ»áÒýÆð»ØÁ÷ÖØ»æµÄ£¬²»¹ýËü»¹ÊÇ¿ÉÒÔÌáÉýÕâЩ¶¯»­µÄÐÔÄÜ¡£

            ±¾ÆªÎÄÕÂÖ»ÌÖÂÛÈçºÎʹÓã¬Ôݲ»¿¼ÂÇÆäÔ­Àí£¬Ö®ºóÓпջáÁíÍ⿪ƪÎÄÕÂ˵Ã÷¡£

            ÈçºÎʹÓÃ

            ³£¼ûµÄ´¥·¢Ó²¼þ¼ÓËÙµÄcssÊôÐÔ£º

            •  transform
            •  opacity
            •  filters
            •  Will-change

            Ч¹û

            ÎÒÃÇ¿ÉÒÔÏÈ¿´¸öÀý×Ó¡£ÎÒͨ¹ýʹÓÃchromeµÄPerformance²¶»ñÁ˶¯»­Ò»¶Îʱ¼äÀïµÄ»ØÁ÷ÖØ»æÇé¿ö£¬Êµ¼Ê½á¹ûÈçÏÂͼ£º

            Ìí¼ÓÃèÊö

            ´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´³ö£¬ÔÚ¶¯»­½øÐеÄʱºò£¬Ã»Óз¢ÉúÈκεĻØÁ÷ÖØ»æ¡£Èç¹û¸ÐÐËȤÄãÒ²¿ÉÒÔ×Ô¼º×öÏÂʵÑé¡£

            ÖØµã

            •  Ê¹ÓÃcss3Ó²¼þ¼ÓËÙ£¬¿ÉÒÔÈÃtransform¡¢opacity¡¢filtersÕâЩ¶¯»­²»»áÒýÆð»ØÁ÷ÖØ»æ
            •  ¶ÔÓÚ¶¯»­µÄÆäËüÊôÐÔ£¬±ÈÈçbackground-colorÕâЩ£¬»¹ÊÇ»áÒýÆð»ØÁ÷ÖØ»æµÄ£¬²»¹ýËü»¹ÊÇ¿ÉÒÔÌáÉýÕâЩ¶¯»­µÄÐÔÄÜ¡£

            css3Ó²¼þ¼ÓËٵĿÓ

            µ±È»£¬ÈκÎÃÀºÃµÄ¶«Î÷¶¼ÊÇ»áÓжÔÓ¦µÄ´ú¼ÛµÄ£¬¹ýÓ̲»¼°¡£css3Ó²¼þ¼ÓËÙ»¹ÊÇÓпӵÄ:

            •  Èç¹ûÄãΪ̫¶àÔªËØÊ¹ÓÃcss3Ó²¼þ¼ÓËÙ£¬»áµ¼ÖÂÄÚ´æÕ¼Óýϴ󣬻áÓÐÐÔÄÜÎÊÌâ¡£
            •  ÔÚGPUäÖȾ×ÖÌå»áµ¼Ö¿¹¾â³ÝÎÞЧ¡£ÕâÊÇÒòΪGPUºÍCPUµÄËã·¨²»Í¬¡£Òò´ËÈç¹ûÄã²»ÔÚ¶¯»­½áÊøµÄʱºò¹Ø±ÕÓ²¼þ¼ÓËÙ£¬»á²úÉú×ÖÌåÄ£ºý¡£

            ×ܽá

            ±¾ÎÄÖ÷Òª½²ÁËä¯ÀÀÆ÷µÄäÖȾ¹ý³Ì¡¢ä¯ÀÀÆ÷µÄÓÅ»¯»úÖÆÒÔ¼°ÈçºÎ¼õÉÙÉõÖÁ±ÜÃâ»ØÁ÷ºÍÖØ»æ£¬Ï£Íû¿ÉÒÔ°ïÖú´ó¼Ò¸üºÃµÄÀí½â»ØÁ÷ÖØ»æ¡£

            ¡¾ÔðÈα༭£ºÅÓ¹ðÓñ TEL£º£¨010£©68476606¡¿

            µãÔÞ 0
            ·ÖÏí:
            ´ó¼Ò¶¼ÔÚ¿´
            ²ÂÄãϲ»¶
            24HÈÈÎÄ
            Ò»ÖÜ»°Ìâ
            ±¾Ô»ñÔÞ

            ¶©ÔÄרÀ¸+¸ü¶à

            16ÕÐÇáËÉÕÆÎÕPPT¼¼ÇÉ

            16ÕÐÇáËÉÕÆÎÕPPT¼¼ÇÉ

            GETÖ°³¡¼Óн¼¼ÄÜ
            ¹²16Õ | ɹÊé°ü

            289È˶©ÔÄѧϰ

            20¸ö¾ÖÓòÍø½¨Éè¸ÄÔì°¸Àý

            20¸ö¾ÖÓòÍø½¨Éè¸ÄÔì°¸Àý

            ÍøÂç´î½¨¼¼ÇÉ
            ¹²20Õ | ½Ý¸çCCIE

            645È˶©ÔÄѧϰ

            WOT2019È«ÇòÈ˹¤ÖÇÄܼ¼Êõ·å»á

            WOT2019È«ÇòÈ˹¤ÖÇÄܼ¼Êõ·å»á

            ͨÓü¼Êõ¡¢Ó¦ÓÃÁìÓò¡¢ÆóÒµ¸³ÄÜÈý´óÕ½Ú£¬13´ó¼¼Êõר³¡£¬60+¹úÄÚÍâÒ»ÏßÈ˹¤ÖÇÄܾ«Ó¢´ó¿§Õ¾Ì¨£¬·ÖÏíÈ˹¤ÖÇÄܵį½Ì¨¹¤¾ß¡¢Ë㷨ģÐÍ¡¢ÓïÒôÊÓ¾õµÈ¼¼ÊõÖ÷Ì⣬ÖúÁ¦È˹¤ÖÇÄÜÂ䵨¡£
            ¹²50Õ | WOT·å»á

            0È˶©ÔÄѧϰ

            ¶Á Êé +¸ü¶à

            ASP.NET 2.0Êý¾Ý¿â¿ª·¢ÊµÀý¾«´â

            ±¾Êé·ÖΪ8Õ£¬Ê×ÏȽéÉÜASP.NETµÄ¿ª·¢¼¼ÇɺÍÖØµã¼¼Êõ£¬ÓÈÆäÕë¶Ô³õѧÕßÈçºÎ¿ìËÙÈëÃŲ¢ÕÆÎÕASP.NET±à³Ì×öÁËÉîÈëdz³öµÄ½éÉÜ£»È»ºóÖØµã½éÉÜASP.N...

            ¶©ÔÄ51CTOÓÊ¿¯

            µã»÷ÕâÀï²é¿´Ñù¿¯

            ¶©ÔÄ51CTOÓÊ¿¯

            51CTO·þÎñºÅ

            51CTO²¥¿Í