¡¾¿ª·¢±Ø¿´¡¿ÄãÕæµÄÁË½â»ØÁ÷ºÍÖØ»æÂð£¿
»ØÁ÷ºÍÖØ»æ¿ÉÒÔ˵ÊÇÿһ¸öweb¿ª·¢Õß¶¼¾³£Ìýµ½µÄÁ½¸ö´ÊÓ¿ÉÊÇ¿ÉÄÜÓкܶàÈ˲»ÊǺÜÇå³þÕâÁ½²½¾ßÌå×öÁËʲôÊÂÇé¡£×î½üÓÐ¿Õ¶ÔÆä½øÐÐÁËһЩÑо¿£¬¿´ÁËһЩ²©¿ÍºÍÊé¼®£¬ÕûÀíÁËһЩÄÚÈݲ¢ÇÒ½áºÏһЩÀý×Ó£¬Ð´ÁËÕâÆªÎÄÕ£¬Ï£Íû¿ÉÒÔ°ïÖúµ½´ó¼Ò¡£
- ×÷ÕߣºÌÚÑ¶ÔÆ¼ÓÉçÇøÀ´Ô´£ºsegmentfault|2021-04-18 14:50
»ØÁ÷ºÍÖØ»æ¿ÉÒÔ˵ÊÇÿһ¸öweb¿ª·¢Õß¶¼¾³£Ìýµ½µÄÁ½¸ö´ÊÓ¿ÉÊÇ¿ÉÄÜÓкܶàÈ˲»ÊǺÜÇå³þÕâÁ½²½¾ßÌå×öÁËʲôÊÂÇé¡£×î½üÓÐ¿Õ¶ÔÆä½øÐÐÁËһЩÑо¿£¬¿´ÁËһЩ²©¿ÍºÍÊé¼®£¬ÕûÀíÁËһЩÄÚÈݲ¢ÇÒ½áºÏһЩÀý×Ó£¬Ð´ÁËÕâÆªÎÄÕ£¬Ï£Íû¿ÉÒÔ°ïÖúµ½´ó¼Ò¡£
ä¯ÀÀÆ÷µÄäÖȾ¹ý³Ì
±¾ÎÄÏÈ´Óä¯ÀÀÆ÷µÄäÖȾ¹ý³ÌÀ´´ÓÍ·µ½Î²µÄ½²½âһϻØÁ÷ÖØ»æ£¬Èç¹û´ó¼ÒÏëÖ±½Ó¿´ÈçºÎ¼õÉÙ»ØÁ÷ºÍÖØ»æ£¬ÓÅ»¯ÐÔÄÜ£¬¿ÉÒÔÌøµ½ºóÃæ¡££¨Õâ¸öäÖȾ¹ý³ÌÀ´×ÔMDN£©
ä¯ÀÀÆ÷äÖȾ¹ý³Ì
Ìí¼ÓÃèÊö
´ÓÉÏÃæÕâ¸öͼÉÏ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬ä¯ÀÀÆ÷äÖȾ¹ý³ÌÈçÏ£º
- ½âÎöHTML£¬Éú³ÉDOMÊ÷£¬½âÎöCSS£¬Éú³ÉCSSOMÊ÷
- ½«DOMÊ÷ºÍCSSOMÊ÷½áºÏ£¬Éú³ÉäÖȾÊ÷(Render Tree)
- Layout(»ØÁ÷):¸ù¾ÝÉú³ÉµÄäÖȾÊ÷£¬½øÐлØÁ÷(Layout)£¬µÃµ½½ÚµãµÄ¼¸ºÎÐÅÏ¢£¨Î»Ö㬴óС£©
- Painting(ÖØ»æ):¸ù¾ÝäÖȾÊ÷ÒÔ¼°»ØÁ÷µÃµ½µÄ¼¸ºÎÐÅÏ¢£¬µÃµ½½ÚµãµÄ¾ø¶ÔÏñËØ
- Display:½«ÏñËØ·¢Ë͸øGPU£¬Õ¹Ê¾ÔÚÒ³ÃæÉÏ¡££¨ÕâÒ»²½Æäʵ»¹ÓкܶàÄÚÈÝ£¬±ÈÈç»áÔÚGPU½«¶à¸öºÏ³É²ãºÏ²¢ÎªÍ¬Ò»¸ö²ã£¬²¢Õ¹Ê¾ÔÚÒ³ÃæÖС£¶øcss3Ó²¼þ¼ÓËÙµÄÔÀíÔòÊÇн¨ºÏ³É²ã£¬ÕâÀïÎÒÃDz»Õ¹¿ª£¬Ö®ºóÓлú»á»áдһƪ²©¿Í£©
äÖȾ¹ý³Ì¿´ÆðÀ´ºÜ¼òµ¥£¬ÈÃÎÒÃÇÀ´¾ßÌåÁ˽âÏÂÿһ²½¾ßÌå×öÁËʲô¡£
Éú³ÉäÖȾÊ÷
äÖȾÊ÷¹¹½¨
ΪÁ˹¹½¨äÖȾÊ÷£¬ä¯ÀÀÆ÷Ö÷ÒªÍê³ÉÁËÒÔϹ¤×÷£º
- ´ÓDOMÊ÷µÄ¸ù½Úµã¿ªÊ¼±éÀúÿ¸ö¿É¼û½Úµã¡£
- ¶ÔÓÚÿ¸ö¿É¼ûµÄ½Úµã£¬ÕÒµ½CSSOMÊ÷ÖжÔÓ¦µÄ¹æÔò£¬²¢Ó¦ÓÃËüÃÇ¡£
- ¸ù¾Ýÿ¸ö¿É¼û½ÚµãÒÔ¼°Æä¶ÔÓ¦µÄÑùʽ£¬×éºÏÉú³ÉäÖȾÊ÷¡£
***²½ÖУ¬¼ÈȻ˵µ½ÁËÒª±éÀú¿É¼ûµÄ½Úµã£¬ÄÇôÎÒÃǵÃÏÈÖªµÀ£¬Ê²Ã´½ÚµãÊDz»¿É¼ûµÄ¡£²»¿É¼ûµÄ½Úµã°üÀ¨£º
- һЩ²»»áäÖȾÊä³öµÄ½Úµã£¬±ÈÈçscript¡¢meta¡¢linkµÈ¡£
- һЩͨ¹ýcss½øÐÐÒþ²ØµÄ½Úµã¡£±ÈÈçdisplay:none¡£×¢Ò⣬ÀûÓÃvisibilityºÍopacityÒþ²ØµÄ½Úµã£¬»¹ÊÇ»áÏÔʾÔÚäÖȾÊ÷Éϵġ£Ö»ÓÐdisplay:noneµÄ½Úµã²Å²»»áÏÔʾÔÚäÖȾÊ÷ÉÏ¡£
´ÓÉÏÃæµÄÀý×ÓÀ´½²£¬ÎÒÃÇ¿ÉÒÔ¿´µ½span±êÇ©µÄÑùʽÓÐÒ»¸ödisplay:none£¬Òò´Ë£¬Ëü×îÖÕ²¢Ã»ÓÐÔÚäÖȾÊ÷ÉÏ¡£
×¢Ò⣺äÖȾÊ÷Ö»°üº¬¿É¼ûµÄ½Úµã
»ØÁ÷
Ç°ÃæÎÒÃÇͨ¹ý¹¹ÔìäÖȾÊ÷£¬ÎÒÃǽ«¿É¼ûDOM½ÚµãÒÔ¼°Ëü¶ÔÓ¦µÄÑùʽ½áºÏÆðÀ´£¬¿ÉÊÇÎÒÃÇ»¹ÐèÒª¼ÆËãËüÃÇÔÚÉ豸ÊÓ¿Ú(viewport)ÄÚµÄÈ·ÇÐλÖúʹóС£¬Õâ¸ö¼ÆËãµÄ½×¶Î¾ÍÊÇ»ØÁ÷¡£
ΪÁËŪÇåÿ¸ö¶ÔÏóÔÚÍøÕ¾ÉϵÄÈ·ÇдóСºÍλÖã¬ä¯ÀÀÆ÷´ÓäÖȾÊ÷µÄ¸ù½Úµã¿ªÊ¼±éÀú£¬ÎÒÃÇ¿ÉÒÔÒÔÏÂÃæÕâ¸öʵÀýÀ´±íʾ£º
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Critial Path: Hello world!</title>
- </head>
- <body>
- <div style="width: 50%">
- <div style="width: 50%">Hello world!</div>
- </div>
- </body>
- </html>
ÎÒÃÇ¿ÉÒÔ¿´µ½£¬***¸ödiv½«½ÚµãµÄÏÔʾ³ß´çÉèÖÃΪÊÓ¿Ú¿í¶ÈµÄ50%£¬µÚ¶þ¸ödiv½«Æä³ß´çÉèÖÃΪ¸¸½ÚµãµÄ50%¡£¶øÔÚ»ØÁ÷Õâ¸ö½×¶Î£¬ÎÒÃǾÍÐèÒª¸ù¾ÝÊÓ¿Ú¾ßÌåµÄ¿í¶È£¬½«ÆäתΪʵ¼ÊµÄÏñËØÖµ¡££¨ÈçÏÂͼ£©
»ØÁ÷
ÖØ»æ
×îÖÕ£¬ÎÒÃÇͨ¹ý¹¹ÔìäÖȾÊ÷ºÍ»ØÁ÷½×¶Î£¬ÎÒÃÇÖªµÀÁËÄÄЩ½ÚµãÊǿɼûµÄ£¬ÒÔ¼°¿É¼û½ÚµãµÄÑùʽºÍ¾ßÌåµÄ¼¸ºÎÐÅÏ¢(λÖᢴóС)£¬ÄÇôÎÒÃǾͿÉÒÔ½«äÖȾÊ÷µÄÿ¸ö½Úµã¶¼×ª»»ÎªÆÁÄ»ÉϵÄʵ¼ÊÏñËØ£¬Õâ¸ö½×¶Î¾Í½Ð×öÖØ»æ½Úµã¡£
¼ÈȻ֪µÀÁËä¯ÀÀÆ÷µÄäÖȾ¹ý³Ìºó£¬ÎÒÃǾÍÀ´Ì½ÌÖÏ£¬ºÎʱ»á·¢Éú»ØÁ÷ÖØ»æ¡£
ºÎʱ·¢Éú»ØÁ÷ÖØ»æ
ÎÒÃÇÇ°ÃæÖªµÀÁË£¬»ØÁ÷ÕâÒ»½×¶ÎÖ÷ÒªÊǼÆËã½ÚµãµÄλÖúͼ¸ºÎÐÅÏ¢£¬ÄÇôµ±Ò³Ãæ²¼¾ÖºÍ¼¸ºÎÐÅÏ¢·¢Éú±ä»¯µÄʱºò£¬¾ÍÐèÒª»ØÁ÷¡£±ÈÈçÒÔÏÂÇé¿ö£º
- Ìí¼Ó»òɾ³ý¿É¼ûµÄDOMÔªËØ
- ÔªËØµÄλÖ÷¢Éú±ä»¯
- ÔªËØµÄ³ß´ç·¢Éú±ä»¯£¨°üÀ¨Íâ±ß¾à¡¢Äڱ߿ò¡¢±ß¿ò´óС¡¢¸ß¶ÈºÍ¿í¶ÈµÈ£©
- ÄÚÈÝ·¢Éú±ä»¯£¬±ÈÈçÎı¾±ä»¯»òͼƬ±»ÁíÒ»¸ö²»Í¬³ß´çµÄͼƬËùÌæ´ú¡£
- Ò³ÃæÒ»¿ªÊ¼äÖȾµÄʱºò£¨Õâ¿Ï¶¨±ÜÃâ²»ÁË£©
- ä¯ÀÀÆ÷µÄ´°¿Ú³ß´ç±ä»¯£¨ÒòΪ»ØÁ÷ÊǸù¾ÝÊӿڵĴóСÀ´¼ÆËãÔªËØµÄλÖúʹóСµÄ£©
×¢Ò⣺»ØÁ÷Ò»¶¨»á´¥·¢Öػ棬¶øÖػ治һ¶¨»á»ØÁ÷
¸ù¾Ý¸Ä±äµÄ·¶Î§ºÍ³Ì¶È£¬äÖȾÊ÷Öлò´ó»òСµÄ²¿·ÖÐèÒªÖØÐ¼ÆË㣬ÓÐЩ¸Ä±ä»á´¥·¢Õû¸öÒ³ÃæµÄÖØÅÅ£¬±ÈÈ磬¹ö¶¯Ìõ³öÏÖµÄʱºò»òÕßÐÞ¸ÄÁ˸ù½Úµã¡£
ä¯ÀÀÆ÷µÄÓÅ»¯»úÖÆ
ÏÖ´úµÄä¯ÀÀÆ÷¶¼ÊǺܴÏÃ÷µÄ£¬ÓÉÓÚÿ´ÎÖØÅŶ¼»áÔì³É¶îÍâµÄ¼ÆËãÏûºÄ£¬Òò´Ë´ó¶àÊýä¯ÀÀÆ÷¶¼»áͨ¹ý¶ÓÁл¯Ð޸IJ¢ÅúÁ¿Ö´ÐÐÀ´ÓÅ»¯ÖØÅŹý³Ì¡£ä¯ÀÀÆ÷»á½«Ð޸IJÙ×÷·ÅÈëµ½¶ÓÁÐÀֱµ½¹ýÁËÒ»¶Îʱ¼ä»òÕß²Ù×÷´ïµ½ÁËÒ»¸öãÐÖµ£¬²ÅÇå¿Õ¶ÓÁС£µ«ÊÇ£¡µ±Äã»ñÈ¡²¼¾ÖÐÅÏ¢µÄ²Ù×÷µÄʱºò£¬»áÇ¿ÖÆ¶ÓÁÐˢУ¬±ÈÈçµ±Äã·ÃÎÊÒÔÏÂÊôÐÔ»òÕßʹÓÃÒÔÏ·½·¨£º
- offsetTop¡¢offsetLeft¡¢offsetWidth¡¢offsetHeight
- scrollTop¡¢scrollLeft¡¢scrollWidth¡¢scrollHeight
- clientTop¡¢clientLeft¡¢clientWidth¡¢clientHeight
- getComputedStyle()
- getBoundingClientRect
- ¾ßÌå¿ÉÒÔ·ÃÎÊÕâ¸öÍøÕ¾£º//gist.github.com/pauli...
ÒÔÉÏÊôÐԺͷ½·¨¶¼ÐèÒª·µ»Ø***µÄ²¼¾ÖÐÅÏ¢£¬Òò´Ëä¯ÀÀÆ÷²»µÃ²»Çå¿Õ¶ÓÁУ¬´¥·¢»ØÁ÷ÖØ»æÀ´·µ»ØÕýÈ·µÄÖµ¡£Òò´Ë£¬ÎÒÃÇÔÚÐÞ¸ÄÑùʽµÄʱºò£¬***±ÜÃâʹÓÃÉÏÃæÁгöµÄÊôÐÔ£¬ËûÃǶ¼»áË¢ÐÂäÖȾ¶ÓÁС£Èç¹ûҪʹÓÃËüÃÇ£¬***½«Öµ»º´æÆðÀ´¡£
¼õÉÙ»ØÁ÷ºÍÖØ»æ
ºÃÁË£¬µ½ÁËÎÒÃǽñÌìµÄÖØÍ·Ï·£¬Ç°ÃæËµÁËÕâô¶à±³¾°ºÍÀíÂÛ֪ʶ£¬½ÓÏÂÀ´ÈÃÎÒÃÇ̸̸ÈçºÎ¼õÉÙ»ØÁ÷ºÍÖØ»æ¡£
×îС»¯ÖØ»æºÍÖØÅÅ
ÓÉÓÚÖØ»æºÍÖØÅÅ¿ÉÄÜ´ú¼Û±È½Ï°º¹ó£¬Òò´Ë***¾ÍÊÇ¿ÉÒÔ¼õÉÙËüµÄ·¢Éú´ÎÊý¡£ÎªÁ˼õÉÙ·¢Éú´ÎÊý£¬ÎÒÃÇ¿ÉÒԺϲ¢¶à´Î¶ÔDOMºÍÑùʽµÄÐ޸ģ¬È»ºóÒ»´Î´¦Àíµô¡£¿¼ÂÇÕâ¸öÀý×Ó
- const el = document.getElementById('test');
- el.style.padding = '5px';
- el.style.borderLeft = '1px';
- el.style.borderRight = '2px';
Àý×ÓÖУ¬ÓÐÈý¸öÑùʽÊôÐÔ±»ÐÞ¸ÄÁË£¬Ã¿Ò»¸ö¶¼»áÓ°ÏìÔªËØµÄ¼¸ºÎ½á¹¹£¬ÒýÆð»ØÁ÷¡£µ±È»£¬´ó²¿·ÖÏÖ´úä¯ÀÀÆ÷¶¼¶ÔÆä×öÁËÓÅ»¯£¬Òò´Ë£¬Ö»»á´¥·¢Ò»´ÎÖØÅÅ¡£µ«ÊÇÈç¹ûÔھɰæµÄä¯ÀÀÆ÷»òÕßÔÚÉÏÃæ´úÂëÖ´ÐеÄʱºò£¬ÓÐÆäËû´úÂë·ÃÎÊÁ˲¼¾ÖÐÅÏ¢(ÉÏÎÄÖеĻᴥ·¢»ØÁ÷µÄ²¼¾ÖÐÅÏ¢)£¬ÄÇô¾Í»áµ¼ÖÂÈý´ÎÖØÅÅ¡£
Òò´Ë£¬ÎÒÃÇ¿ÉÒԺϲ¢ËùÓеĸıäÈ»ºóÒÀ´Î´¦Àí£¬±ÈÈçÎÒÃÇ¿ÉÒÔ²ÉÈ¡ÒÔϵķ½Ê½£º
- ʹÓÃcssText
- const el = document.getElementById('test');
- el.style.cssText += 'border-left: 1px; border-right: 2px; padding: 5px;';
- ÐÞ¸ÄCSSµÄclass
- const el = document.getElementById('test');
- el.className += ' active';
ÅúÁ¿ÐÞ¸ÄDOM
µ±ÎÒÃÇÐèÒª¶ÔDOM¶ÔһϵÁÐÐ޸ĵÄʱºò£¬¿ÉÒÔͨ¹ýÒÔϲ½Öè¼õÉÙ»ØÁ÷ÖØ»æ´ÎÊý£º
- Ê¹ÔªËØÍÑÀëÎĵµÁ÷
- ¶ÔÆä½øÐжà´ÎÐÞ¸Ä
- ½«ÔªËØ´ø»Øµ½ÎĵµÖС£
¸Ã¹ý³ÌµÄ***²½ºÍµÚÈý²½¿ÉÄÜ»áÒýÆð»ØÁ÷£¬µ«ÊǾ¹ý***²½Ö®ºó£¬¶ÔDOMµÄËùÓÐÐ޸ͼ²»»áÒýÆð»ØÁ÷ÖØ»æ£¬ÒòΪËüÒѾ²»ÔÚäÖȾÊ÷ÁË¡£
ÓÐÈýÖÖ·½Ê½¿ÉÒÔÈÃDOMÍÑÀëÎĵµÁ÷£º
- Òþ²ØÔªËØ£¬Ó¦ÓÃÐ޸ģ¬ÖØÐÂÏÔʾ
- ʹÓÃÎĵµÆ¬¶Î(document fragment)ÔÚµ±Ç°DOMÖ®Íâ¹¹½¨Ò»¸ö×ÓÊ÷£¬ÔÙ°ÑËü¿½±´»ØÎĵµ¡£
- ½«ÔÊ¼ÔªËØ¿½±´µ½Ò»¸öÍÑÀëÎĵµµÄ½ÚµãÖУ¬Ð޸Ľڵãºó£¬ÔÙÌæ»»ÔʼµÄÔªËØ¡£
¿¼ÂÇÎÒÃÇÒªÖ´ÐÐÒ»¶ÎÅúÁ¿²åÈë½ÚµãµÄ´úÂ룺
- function appendDataToElement(appendToElement, data) {
- let li;
- for (let i = 0; i < data.length; i++) {
- li = document.createElement('li');
- li.textContent = 'text';
- appendToElement.appendChild(li);
- }
- }
- const ul = document.getElementById('list');
- appendDataToElement(ul, data);
Èç¹ûÎÒÃÇÖ±½ÓÕâÑùÖ´Ðеϰ£¬ÓÉÓÚÿ´ÎÑ»·¶¼»á²åÈëÒ»¸öеĽڵ㣬»áµ¼ÖÂä¯ÀÀÆ÷»ØÁ÷Ò»´Î¡£
ÎÒÃÇ¿ÉÒÔʹÓÃÕâÈýÖÖ·½Ê½½øÐÐÓÅ»¯:
Òþ²ØÔªËØ£¬Ó¦ÓÃÐ޸ģ¬ÖØÐÂÏÔʾ
Õâ¸ö»áÔÚչʾºÍÒþ²Ø½ÚµãµÄʱºò£¬²úÉúÁ½´Î»ØÁ÷
- function appendDataToElement(appendToElement, data) {
- let li;
- for (let i = 0; i < data.length; i++) {
- li = document.createElement('li');
- li.textContent = 'text';
- appendToElement.appendChild(li);
- }
- }
- const ul = document.getElementById('list');
- ul.style.display = 'none';
- appendDataToElement(ul, data);
- ul.style.display = 'block';
ʹÓÃÎĵµÆ¬¶Î(document fragment)ÔÚµ±Ç°DOMÖ®Íâ¹¹½¨Ò»¸ö×ÓÊ÷£¬ÔÙ°ÑËü¿½±´»ØÎĵµ
- const ul = document.getElementById('list');
- const fragment = document.createDocumentFragment();
- appendDataToElement(fragment, data);
- ul.appendChild(fragment);
½«ÔÊ¼ÔªËØ¿½±´µ½Ò»¸öÍÑÀëÎĵµµÄ½ÚµãÖУ¬Ð޸Ľڵãºó£¬ÔÙÌæ»»ÔʼµÄÔªËØ¡£
- const ul = document.getElementById('list');
- const clone = ul.cloneNode(true);
- appendDataToElement(clone, data);
- ul.parentNode.replaceChild(clone, ul);
¶ÔÓÚÉÏÃæÕâÈýÖÖÇé¿ö£¬ÎÒдÁËÒ»¸ödemoÔÚsafariºÍchromeÉϲâÊÔÐÞ¸ÄǰºÍÐ޸ĺóµÄÐÔÄÜ¡£È»¶øÊµÑé½á¹û²»ÊǺÜÀíÏë¡£
ÔÒò£ºÔÒòÆäʵÉÏÃæÒ²Ëµ¹ýÁË£¬ÏÖ´úä¯ÀÀÆ÷»áʹÓöÓÁÐÀ´´¢´æ¶à´ÎÐ޸쬽øÐÐÓÅ»¯£¬ËùÒÔ¶ÔÕâ¸öÓÅ»¯·½°¸£¬ÎÒÃÇÆäʵ²»ÓÃÓÅÏÈ¿¼ÂÇ¡£
±ÜÃâ´¥·¢Í¬²½²¼¾Öʼþ
ÉÏÎÄÎÒÃÇ˵¹ý£¬µ±ÎÒÃÇ·ÃÎÊÔªËØµÄһЩÊôÐÔµÄʱºò£¬»áµ¼ÖÂä¯ÀÀÆ÷Ç¿ÖÆÇå¿Õ¶ÓÁУ¬½øÐÐÇ¿ÖÆÍ¬²½²¼¾Ö¡£¾Ù¸öÀý×Ó£¬±ÈÈç˵ÎÒÃÇÏ뽫һ¸öp±êÇ©Êý×éµÄ¿í¶È¸³ÖµÎªÒ»¸öÔªËØµÄ¿í¶È£¬ÎÒÃÇ¿ÉÄÜд³öÕâÑùµÄ´úÂ룺
- function initP() {
- for (let i = 0; i < paragraphs.length; i++) {
- paragraphs[i].style.width = box.offsetWidth + 'px';
- }
- }
Õâ¶Î´úÂë¿´ÉÏÈ¥ÊÇûÓÐʲôÎÊÌ⣬¿ÉÊÇÆäʵ»áÔì³ÉºÜ´óµÄÐÔÄÜÎÊÌâ¡£ÔÚÿ´ÎÑ»·µÄʱºò£¬¶¼¶ÁÈ¡ÁËboxµÄÒ»¸öoffsetWidthÊôÐÔÖµ£¬È»ºóÀûÓÃËüÀ´¸üÐÂp±êÇ©µÄwidthÊôÐÔ¡£Õâ¾Íµ¼ÖÂÁËÿһ´ÎÑ»·µÄʱºò£¬ä¯ÀÀÆ÷¶¼±ØÐëÏÈʹÉÏÒ»´ÎÑ»·ÖеÄÑùʽ¸üвÙ×÷ÉúЧ£¬²ÅÄÜÏìÓ¦±¾´ÎÑ»·µÄÑùʽ¶ÁÈ¡²Ù×÷¡£Ã¿Ò»´ÎÑ»·¶¼»áÇ¿ÖÆä¯ÀÀÆ÷ˢжÓÁС£ÎÒÃÇ¿ÉÒÔÓÅ»¯Îª:
- const width = box.offsetWidth;
- function initP() {
- for (let i = 0; i < paragraphs.length; i++) {
- paragraphs[i].style.width = width + 'px';
- }
- }
ͬÑù£¬ÎÒҲдÁ˸ö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µÄËã·¨²»Í¬¡£Òò´ËÈç¹ûÄã²»ÔÚ¶¯»½áÊøµÄʱºò¹Ø±ÕÓ²¼þ¼ÓËÙ£¬»á²úÉú×ÖÌåÄ£ºý¡£
×ܽá
±¾ÎÄÖ÷Òª½²ÁËä¯ÀÀÆ÷µÄäÖȾ¹ý³Ì¡¢ä¯ÀÀÆ÷µÄÓÅ»¯»úÖÆÒÔ¼°ÈçºÎ¼õÉÙÉõÖÁ±ÜÃâ»ØÁ÷ºÍÖØ»æ£¬Ï£Íû¿ÉÒÔ°ïÖú´ó¼Ò¸üºÃµÄÀí½â»ØÁ÷ÖØ»æ¡£
µãÔÞ 0
- ´ó¼Ò¶¼ÔÚ¿´
- ²ÂÄãϲ»¶
±à¼ÍƼö
- 24HÈÈÎÄ
- Ò»ÖÜ»°Ìâ
- ±¾Ô»ñÔÞ
- Ì«À÷º¦ÁË£¬ÖÕÓÚÓÐÈËÄܰÑTCP/IPÐÒé½²µÄÃ÷Ã÷°×°×ÁË£¡×øÔÚÂíͰÉÏ¿´Ëã·¨£º¿ìËÙÅÅÐò¿ª·¢ | ÔÙ¼ûÁË£¬¹«Ë¾µÄ¡°ÀÃϵͳ¡±»¨ÁËÒ»¸öÐÇÆÚ£¬ÎÒÖÕÓÚ°ÑRPC¿ò¼ÜÕûÃ÷°×ÁË£¡Í¼ÎÄÏê½âÁ½ÖÖËã·¨£ºÉî¶ÈÓÅÏȱéÀú£¨DFS£©ºÍ¹ã¶ÈÓÅÏȱéÀú£¨BFS£©6ÖÖ΢·þÎñRPC¿ò¼Ü£¬ÄãÖªµÀ¼¸¸ö£¿Java¶ÔÏóΪɶҪʵÏÖSerializable½Ó¿Ú£¿Ê®¶þ´óÁ÷ÐеÄAngular UI¿â
- Ì«À÷º¦ÁË£¬ÖÕÓÚÓÐÈËÄܰÑTCP/IPÐÒé½²µÄÃ÷Ã÷°×°×ÁË£¡×øÔÚÂíͰÉÏ¿´Ëã·¨£º¿ìËÙÅÅÐò»¨ÁËÒ»¸öÐÇÆÚ£¬ÎÒÖÕÓÚ°ÑRPC¿ò¼ÜÕûÃ÷°×ÁË£¡Í¼ÎÄÏê½âÁ½ÖÖËã·¨£ºÉî¶ÈÓÅÏȱéÀú£¨DFS£©ºÍ¹ã¶ÈÓÅÏȱéÀú£¨BFS£©6ÖÖ΢·þÎñRPC¿ò¼Ü£¬ÄãÖªµÀ¼¸¸ö£¿¼Ü¹¹Ê¦µÄÑ¡Ôñ£¬Pulsar»¹ÊÇKafka£¿Java¶ÔÏóΪɶҪʵÏÖSerializable½Ó¿Ú£¿¿ª·¢ | ÔÙ¼ûÁË£¬¹«Ë¾µÄ¡°ÀÃϵͳ¡±
- Ì«À÷º¦ÁË£¬ÖÕÓÚÓÐÈËÄܰÑTCP/IPÐÒé½²µÄÃ÷Ã÷°×°×ÁË£¡×øÔÚÂíͰÉÏ¿´Ëã·¨£º¿ìËÙÅÅÐò»¨ÁËÒ»¸öÐÇÆÚ£¬ÎÒÖÕÓÚ°ÑRPC¿ò¼ÜÕûÃ÷°×ÁË£¡6ÖÖ΢·þÎñRPC¿ò¼Ü£¬ÄãÖªµÀ¼¸¸ö£¿Í¼ÎÄÏê½âÁ½ÖÖËã·¨£ºÉî¶ÈÓÅÏȱéÀú£¨DFS£©ºÍ¹ã¶ÈÓÅÏȱéÀú£¨BFS£©Java¶ÔÏóΪɶҪʵÏÖSerializable½Ó¿Ú£¿Îå´ó×Ô¶¯»¯²âÊÔµÄPython¿ò¼ÜPHPÊý×éת×Ö·û´®ÓëPHP×Ö·û´®×ªÊý×éµÄÏà¹Ø·½·¨½âÎö
¶©ÔÄרÀ¸+¸ü¶à
-
16ÕÐÇáËÉÕÆÎÕPPT¼¼ÇÉ
GETÖ°³¡¼Óн¼¼Äܹ²16Õ | ɹÊé°ü289È˶©ÔÄѧϰ
-
20¸ö¾ÖÓòÍø½¨Éè¸ÄÔì°¸Àý
ÍøÂç´î½¨¼¼Çɹ²20Õ | ½Ý¸çCCIE645È˶©ÔÄѧϰ
-
WOT2019È«ÇòÈ˹¤ÖÇÄܼ¼Êõ·å»á
ͨÓü¼Êõ¡¢Ó¦ÓÃÁìÓò¡¢ÆóÒµ¸³ÄÜÈý´óÕ½ڣ¬13´ó¼¼Êõר³¡£¬60+¹úÄÚÍâÒ»ÏßÈ˹¤ÖÇÄܾ«Ó¢´ó¿§Õ¾Ì¨£¬·ÖÏíÈ˹¤ÖÇÄܵį½Ì¨¹¤¾ß¡¢Ë㷨ģÐÍ¡¢ÓïÒôÊÓ¾õµÈ¼¼ÊõÖ÷Ì⣬ÖúÁ¦È˹¤ÖÇÄÜÂ䵨¡£¹²50Õ | WOT·å»á0È˶©ÔÄѧϰ
ÊÓÆµ¿Î³Ì+¸ü¶à
-
2019Èí¿¼ÍøÂç¹æ»®Éè¼ÆÊ¦-×ÛºÏ֪ʶ¾«½²ÊÓÆµÅà
½²Ê¦£ºÐ¡ÈÎÀÏʦ352826ÈËѧϰ¹ý
-
2019ÄêÈí¿¼ÏµÍ³¼¯³ÉÏîÄ¿¹ÜÀí¹¤³Ìʦ--»ù´¡ÖªÊ¶
½²Ê¦£ºÐ¡ÈÎÀÏʦ233123ÈËѧϰ¹ý
-
RHCSA-RHCEÄ£Ä⿼ÊÔ»·¾³´î½¨ºÍ½â·¨ÊÓÆµ¿Î³Ì£¨
½²Ê¦£º¸ýÕñÔ´21952ÈËѧϰ¹ý
רÌâÍÆ¼ö+¸ü¶à
- ¾«Ñ¡²©ÎÄ
- ÂÛ̳ÈÈÌû
- ÏÂÔØÅÅÐÐ
- ÆóÒµ¼¶Docker¾µÏñ²Ö¿âHarbor²¿ÊðÓëʹÔÚ×îаæproxmox VE 6 ²¿Êðoracle 19Javaµ×²ã£ºGCÏà¹ØÎªÊ²Ã´´óÐÍ»¥ÁªÍø¶¼ÐèÒªÍø¹Ø·þÎñ£¿Spring Boot ×Ô¶¯ÅäÖã¨auto-configu
- ¡¶·þÎñÆ÷Ó²¼þ¹¤³Ìʦ´ÓÈëÃŵ½¾«Í¨¡·£¡¶·þÎñÆ÷Ó²¼þ¹¤³Ìʦ´ÓÈëÃŵ½¾«Í¨¡·£¡¾Èí¿¼¸£Àû¡¿½ðÅÆ½²Ê¦@ÐìÅó ÊÓÆµ¿Î³ÌÔ´Â룺µ÷ÓÃÉãÏñÍ·²¢½øÐÐÈËÁ³Ê¶±ð½ØÍ¼PythonÊÇʲô£¿PythonÄܸÉʲô£¿Ò»Æª
- WINPE CFT-v1.2Oracle 10gÐÔÄܵ÷ÓÅÖ¸ÄÏOracleÊý¾Ý¿âÐÔÄÜÓÅ»¯ÊµÎñ_ãÅËø¼°ãÅÓÅ»¯_WebLogic_·þÎñÆ÷ÐÔÄܲÎÊý2003ÏÂFTPÓû§¸ôÀëµÄʵÏÖ
¶Á Êé +¸ü¶à
ASP.NET 2.0Êý¾Ý¿â¿ª·¢ÊµÀý¾«´â
±¾Êé·ÖΪ8Õ£¬Ê×ÏȽéÉÜASP.NETµÄ¿ª·¢¼¼ÇɺÍÖØµã¼¼Êõ£¬ÓÈÆäÕë¶Ô³õѧÕßÈçºÎ¿ìËÙÈëÃŲ¢ÕÆÎÕASP.NET±à³Ì×öÁËÉîÈëdz³öµÄ½éÉÜ£»È»ºóÖØµã½éÉÜASP.N...
-
¶©ÔÄ51CTOÓÊ¿¯
µã»÷ÕâÀï²é¿´Ñù¿¯

51CTO·þÎñºÅ

51CTO²¥¿Í