Effectǰ¶Ë£ºÈçºÎÈÃÒ³Ãæ´ò¿ªËٶȸü¿ì

Ò³ÃæµÄ´ò¿ªËٶȶÔÍøÕ¾µÄÓÅ»¯Óм«´óµÄÒâÒ壬Èç¹û´ò¿ªÒ»¸öÒ³ÃæÒ»Ö±´¦ÓÚ°×ÆÁ״̬£¬±ÈÈçTTFB³¬¹ý5Ã룬¿ÉÄܴ󲿷ÖÈ˶¼»á°ÑËü¹Øµô¡£»òÕßÊÇÒ³Ãæ¼ÓÔØ³öÀ´ÁË£¬µ«ÊDZȽÏÂý£¬Ò³ÃæÏÔʾ²»ÍêÕû£¬±êÇ©À¸Ò»Ö±ÔÚתȦ£¬Ò³Ã泤ÆÚ´¦ÓÚ²»¿É½»»¥µÄ״̬£¬ÕâÒ²ÊÇÒ»Öֺܲ»ºÃµÄÌåÑé¡£
ÈçºÎÆÀ¼ÛÒ»¸öÒ³Ãæ´ò¿ªµÃ¿ì²»¿ì£¬¿ÉÒÔÓÃÁ½¸öÖ¸±êÃèÊö£¬Ò»¸öÊÇreadyµÄʱ¼ä£¬ÁíÒ»¸öÊÇloadµÄʱ¼ä¡£Õâ¸ö¿ÉÒÔ´ÓChromeµÄ¿ØÖÆÌ¨¿´µ½£¬Èç´ò¿ªstackoverflow.comÍøÕ¾µÄÊ×Ò³£º
Ò»¹²ÊǼÓÔØ490KB£¬readyʱ¼äÊÇ7.36s£¬loadʱ¼äÊÇ17.35s¡£ÔÙÀ´¿´Ï´ò¿ª¹È¸èµÄÇé¿ö£º
ËäÈ»Á½¸öÒ³ÃæµÄÄÚÈݲî±ð±È½Ï´ó£¬µ«ÊÇ´Óʱ¼äÀ´¿´µÄ»°£¬ºÜÃ÷ÏԹȸèµÄËÙ¶ÈÒªÃ÷ÏÔÓÅÓÚstackoverflow£¬¹È¸èµÄreadyʱ¼äÖ»ÓÐ2.22s£¬Ò²¾ÍÊÇ˵2.22ÃëÖ®ºó´ø¸öÒ³Ãæ¾ÍÊDz¼¾ÖÍêÕû¿É½»»¥µÄÁË£¬¶østackoverflow´ò¿ªµÄʱºò½Ï³¤Ê±¼ä´¦ÓÚ¿Õ°×״̬£¬¿É½»»¥Ê±¼ä´ïÒªµ½7.36s¡£
´Óloadʱ¼äÀ´¿´µÄ»°£¬Á½Õß²î±ð²»Ì«£¬¶¼±È½Ï³¤£¬¿ÉÄÜÒòΪËüÃÇÊǾ³ÍâµÄ·þÎñÆ÷¡£finishʱ¼ä±Èloadʱ¼ä³¤£¬ÊÇÒòΪloadÍêºóÓÖÈ¥¶¯Ì¬¼ÓÔØÁËÆäËüµÄjs¡£ ΪʲôstackoverflowµÄreadyʱ¼äÒªÕâô³¤ÄØ£¿ÏÂÃæ·Öµã½éÉÜÓÅ»¯µÄ²ßÂÔ£º
[size=16]01¼õÉÙäÖȾ¶ÂÈû[/size]
£¨1£©±ÜÃâhead±êÇ©JS¶ÂÈû
ËùÓзÅÔÚhead±êÇ©ÀïµÄcssºÍjs¶¼»á¶ÂÈûäÖȾ¡£Èç¹ûÕâЩCSSºÍJSÐèÒª¼ÓÔØºÍ½âÎöºÜ¾ÃµÄ»°£¬ÄÇÃ´Ò³Ãæ¾Í¿Õ°×ÁË¡£¿´stackoverflowµÄhtml½á¹¹£º
<head> <title>Stack Overflow</title> < src="https://ajax.googleapis.com/aj ... gt%3B
|
Ëü°Ñjquery·Åµ½ÁËhead±êÇ©ÀÕâ¸öjquery¼ÓÔØÁË3s£º
¡¡¡¡
Ïà±È֮ϣ¬htmlÎļþÖ»¼ÓÔØÁË0.83s£¬ËùÒÔÕâ¸öjsÎļþÖÁÉÙÊ¹Ò³ÃæÍ£ÁôÁË3sµÄ¿Õ°×״̬¡£ ËüµÄ½âÎö»¨ÁË20ms²»µ½£º
¡¡
Õâ¸ö½âÎöʱ¼ä»¹ÊÇ¿ÉÒÔºöÂÔ£¬Ïà¶ÔÓÚ¼ÓÔØÊ±¼ä¶øÑÔ¡£²¢ÇÒÎÒÃÇ×¢Òâµ½¼´Ê¹°Ñjquery¸øÉ¾ÁË£¬stackoverflowµÄÒ³Ãæ»¹ÊÇ¿ÉÒÔÍêÕûÏÔʾµÄ£¬ÑùʽÎÞÒ죬Õâ¸ö¿ÉÒÔ¸´ÖÆËüµÄÔ´´úÂëµ½±¾µØÈ»ºóɾµôheadÀïÃæµÄ±êÇ©´ò¿ªÒ³Ãæ¹Û²ì¡£Ò²¾ÍÊÇ»°£¬°Ñjs·ÅÍ·²¿ÊÇû̫´ó±ØÒªµÄ¡£×î¹Ø¼üµÄÊÇËüÓõÄÊǹȸèµÄcdn£¬ÕâÑù¾Íµ¼ÖÂÁË´ó½µÄС»ï°éÃÇÎÞ·¨ÔÚÕý³£µÄ»·¾³Ï¿´stackoverflow£¬Ò»´ò¿ªÕû¸öÒ³ÃæÒ»Á½·ÖÖÓ¶¼±£³Ö¿Õ°×̬¡£ ÓÐÁ½ÖÖ½â¾ö°ì·¨£¬µÚÒ»ÖÖÊǰѷŵ½bodyºóÃæ£¬ÕâÒ²ÊǺܶàÍøÕ¾²ÉÈ¡µÄ·½·¨¡£µÚ¶þÖÖÊǸø¼ÓdeferµÄÊôÐÔ£¬deferÊÇhtml5ÐÂÔöµÄÊôÐÔ¡£Ò»µ©ÊÇdeferÑӳٵģ¬ÄÇôÕâ¸ö½«»áÒì²½¼ÓÔØ£¬µ«²»»áÂíÉÏÖ´ÐУ¬»áÔÚreadystatechange±äΪInteractiveºó°´Ë³ÐòÒÀ´ÎÖ´ÐУ¬ÓÃÒÔÏÂdemo×ö˵Ã÷£º
¡¡¡¡<!DOCType html><html><head> <meta charset="utf-8"> < src="defer.js" defer></> </head><body>
<> document.onreadystatechange = function(){ console.log(document.readyState); }; </>
<> window. = function(){ console.log("window is loaded"); }; window.addEventListener
("DOMContentLoaded", function(){ console.log("dom is ready"); }); </> <img src="test.jpg" alt="">
< src="normal.js"></> <> console.log("dom almost built"); </></body></html>
|
defer.jsµÄÄÚÈÝΪ£º
console.log("I'm defered");for(var i = 0; i < 10000000; i++){ new Date();}console.log("defer end");
|
ÖмäÈÃËüÖ´ÐÐÒ»¶Î½Ï³¤µÄʱ¼ä£¨Ô¼3Ã룩£¬normal.jsÄÚÈÝÀàËÆ£¬´òÓ¡µÄlog£º

¿ÉÒÔ¿´µ½£¬Õý³£µÄ×îÏÈÖ´ÐУ¬È»ºó½ô½Ó×ŵÄÄÚÁªÒÀ´ÎÖ´ÐУ¬ËµÃ÷Õý³£ÊÇ´®ÐÐÖ´Ðе쬲»¹ýËüÃÇ¿ÉÒÔÊDz¢ÐмÓÔØ£¬ÀýÈçstackoverflowдÔÚhead±êÇ©ÀïÃæµÄÕâÁ½¸öÕý³£µÄÊDz¢ÐмÓÔØµÄ£º
¡¡¡¡
»Øµ½ÉÏÃæ£¬µÚËÄÐÐreadystatechange±ä³Éinteractive£¬È»ºó¿ªÊ¼Ö´ÐÐdeferµÄ£¬Ö´ÐÐÍêºóÒÀ´Î´¥·¢readyºÍloadʼþ¡£ Ò²¾ÍÊÇ˵£¬deferµÄ½Å±¾»áÕý³£¼ÓÔØ£¬µ«ÊÇÑÓºóÖ´ÐУ¬ÔÚinteractiveºóÖ´ÐУ¬ËùÒÔ²»»áblockÒ³ÃæäÖȾ¡£Òò´Ë·ÅÔÚhead±êÇ©µÄ¿ÉÒÔ¼ÓÒ»¸ödefer£¬µ«ÊǼÓÉÏdeferµÄ½Å±¾·¢ÉúÁËÖØ´óµÄ±ä»¯£¬²»Äܹ»Ó°ÏìäÖȾDOMµÄ¹ý³Ì£¬Ö»ÄÜÊÇÔÚäÖȾÍêÁË£¬ÀýÈç°óµÄclickʼþÔÚÕû¸öÒ³ÃæÃ»äÖȾºÃ֮ǰ²»ÄÜÉúЧ¡£²¢ÇҺܶàÈËÒª°ÑËüдÔÚheadÀïÃæ£¬ÊÇΪÁËÔÚÒ³ÃæÖмäµÄÄܵ÷Óõ½ÕâЩ¿â£¬Ó°ÏìDOMµÄäÖȾ£¬¼ÓÉÏdefer¾ÍÎ¥±³±¾ÒâÁË¡£µ«ÊǰÑдÔÚhead±êǩʼÖÕÊDz»ÍƼöµÄ£¬ËùÒÔÔÚÒ³ÃæÖмäµÄҪôʹÓÃÔÉúµÄAPI£¬ÒªÃ´°ÑһЩÓõ½µÄº¯Êýд³Éhead±êÇ©ÀïÃæµÄÄÚÁª¡£ head±êÇ©ÀïÃæµÄdefer½Å±¾¸ú·ÅÔÚbodyºóÃæµÄ½Å±¾ÓÐÊ²Ã´Çø±ðÄØ£¬Çø±ðÔÚÓÚdeferµÄ½Å±¾»áÂíÉϼÓÔØ£¬Ò»µ©Ò³ÃæinteractiveÁ˱ã¿ÉÒÔÂíÉÏÖ´ÐУ¬¶ø·ÅbodyºóÃæÊÇdocument¿ìinteractiveµÄʱºò²ÅÈ¥¼ÓÔØ¡£ÎÒÃÇÖªµÀ£¬ä¯ÀÀÆ÷ͬʱ¼ÓÔØ×ÊÔ´ÊýÊÇÓÐÏ޵ģ¬ÀýÈçChrome¶Ôͬһ¸öÓòÃûµÄ×ÊÔ´£¬Ã¿´Î×î¶àͬʱֻÄܽ¨Á¢6¸öTCPÁ¬½Ó£¨¶ÁÕß¿ÉÒÔÊÔÊÔ£©¡£ËùÒÔдÔÚhead±êÇ©ÀïÃæµÄÍâÁ´½Å±¾»áÓ°ÏìÒ³ÃæÍ¼Æ¬µÄ¼ÓÔØ£¬ÌرðÊǵ±½Å±¾ºÜ¶àʱ¡£Òò´Ë£¬Èç¹ûÒ³ÃæµÄ½»»¥±ÈͼƬµÄչʾ¸üÖØÒª£¬ÄÇô°ÑдÔÚhead±êÇ©¼ÓÉÏdeferÊÇ¿ÉÈ¡µÄ£¬Èç¹ûÒ³ÃæµÄչʾ¸üÎªÖØÒª£¬ÄÇôӦ¸Ã°Ñ½Å±¾·ÅÔÚbodyºóÃæ¡£ ÁíÍ⣬defer¿ÉÄÜ»áÓмæÈÝÐÔÎÊÌ⣬ÔÚÀϵÄä¯ÀÀÆ÷ÉÏijЩÐÐΪ±íÏÖ¿ÉÄܻ᲻һÖ¡£ ͬÑùµØ£¬head±êÇ©ÀïÃæµÄCSS×ÊÔ´Ò²»áblockÒ³ÃæäÖȾ¡£
£¨2£©¼õÉÙhead±êÇ©ÀïµÄCSS×ÊÔ´
ÓÉÓÚCSS±ØÐëÒª·ÅÔÚhead±êÇ©ÀïÃæ£¬Èç¹û·ÅÔÚbodyÀïÃæ£¬Ò»µ©¼ÓÔØºÃÖ®ºó£¬ÓÖ»á¶ÔlayoutºÃµÄdom½øÐÐÖØÅÅ£¬Ñùʽ¿ÉÄÜÓֻᷢÉúÉÁ˸¡£µ«ÊÇÒ»µ©·ÅÔÚhead±êÇ©ÀïÃæÓÖ»á¶ÂÈûÒ³ÃæäÖȾ£¬ÈôÒª¼ÓÔØºÜ¾Ã£¬Ò³Ãæ¾Í»á±£³Ö¿Õ°×״̬¡£ËùÒÔÒª¾¡¿ÉÄܵؼõÉÙCSSµÄ´úÂëÁ¿¡£ a£© ²»Òª·ÅÌ«¶à·ÅÔÚCSSÀïÃæ ·ÅÌ«¶à·ÅÔÚCSSÀïÃæ£¬»áµ¼ÖÂCSS¼«ËÙÅòÕÍ£¬°ÑÒ»ÕÅ3kµÄͼƬת³É£¬Ìå»ý½«»á±ä³É4k£º ¼ÙÉè·ÅÁË10ÕÅ3kµÄͼƬ£¬ÄÇôCSS½«Ôö´ó40K£¬ÕâÒѾºÍÒ»¸öÆÕͨ´óСµÄCSSÎļþÏà·Â¡£±ÊÕßÔøÎªÁ˽â¾öÒ»¸öhover±äÉ«µÄÎÊÌ⣺ ÔʼͼƬ¶¼ÊÇsvgµÄ¸ñʽ£¬hoverµÄʱºò±ä³ÉÀ¶É«£¬Èç¹ûÕâÑùдµÄ»°£º
¡¡img{ background: url(black.svg) 00no-repeat;}.img:hover{ background: url(blue.svg) 00no-repeat;}
|
»áµ¼ÖÂhoverµÄʱºò²ÅÈ¥¼ÓÔØblue.svg£¬µÚÒ»´ÎhoverµÄʱºò²»»áÂíÉϱäÀ¶£¬ÒªÉÔ΢µÈµ½Í¼Æ¬ÏÂÔØÏÂÀ´ÁË£¬ÔÚ²úÆ·½Ç¶ÈÉÏÊDz»¿É½ÓÊܵġ£ËùÒÔµÚÒ»ÖÖ½â¾ö°ì·¨ÊǰÑhoverдÔÚsvgÀïÃæ£¬ÈçÏ£º
<svg><style type="text/css"> .st0{fill:#282828;} .st0:hover{fill: #3399cc;}</style></svg>
|
µ«ÊÇÓÉÓÚÏÂÃæµÄÎÄ×ÖÒ²Òª¸ú×űäÀ¶£¬ÎÄ×ÖÓÖ²»ÄÜ·ÅÔÚsvgÀïÃæ¿ØÖÆ£¬svg±ä³ÉÍâÁ´Òý½øÀ´Ö®ºó£¬Ëü¾Í¿çÓòÁË£¬ÎÞ·¨ÔÚÍâÃæµÄhtmlÓÃCSS¿ØÖÆÒ»¸ö¿çÓòµÄsvgµÄÑùʽ£¬Èç¹û°Ñsvg±ä³ÉÄÚÁªµÄ£¬ÓֻᵼÖÂhtmlÌå»ý¹ý´ó£¬Í¬Ê±¶Ô»º´æÒ²ÊDz»ÀûµÄ¡£ËùÒÔµ±Ê±ÌáÒ飬°Ñsvgת³É·Åµ½CSSÀïÃæ£¬ºÚÉ«ºÍÀ¶É«µÄ¸÷ת³É£¬×ܹ²Òª×ª6
* 2 = 12¸ö£¬ÓÉÓÚÔʼµÄsvg±¾À´¾Í±È½Ï´ó£¬ÔÙת³É¾Í¸ü´óÁË£¬7k±ä³ÉÁË9k£¬ÔÙ³ËÒÔ12£¬Õû¸öCSS¾ÍÔö¼ÓÁË100¶àK¡£ÕâÑù¾Íµ¼ÖÂÁËCSSÒª¼ÓÔØºÜ¾Ã¡£ ×îºóѹËõºóµÄCSSÎļþÓÐ179Kb£º
-rw-r¨Cr¨C 1 yincheng staff 179K Mar 10 17:45 common-fbc013bb2526235952078ccd72a7fc97.css
|
ºÃÔÚ¿ªÆôÁËgzipѹËõ£¬Êµ¼Ê´«ÊäµÄ´óСΪ30K£º
¡¡
²»¹ÜÔõÑù£¬ÕâÖÖ·½·¨ÒÀ¾ÉÊDz»ÍƼöµÄ¡£×îºó²ÉÈ¡ÁËͼ±ê×ÖÌåµÄ½â¾ö·½°¸£¬½«svgת³É×ÖÌåicon£¬·½±ãÑÕÉ«¿ØÖÆ¡£ÍÑÀëͼƬºóµÄCSSÎļþÖ»ÓÐ22Kb£º
-rw-r¨Cr¨C 1 yincheng staff 22K Mar 10 17:45 common-def3ac6078614e995ca8.js
|
gzipѹËõºó²»µ½10Kb¡£ ÉÏÃæµÄÀý×ÓÊDZÜÃ⶯̬¼ÓÔØ£¬¶øÓÐʱºòÒª¶¯Ì¬¼ÓÔØ£¬µ±Ê¹ÓÃýÌå²éѯµÄʱºò£¬ÈçÏÂËùʾ£º
¡¡¡¡@media(min-width: 501px){ .img{ background-picture: url(large.png); }}@media(max-width: 500px)
{ .img{ background-picture: url(small.png); }}
|
ÉÏÃæ´óÆÁµÄʱºò¼ÓÔØlargeµÄͼƬ£¬Ð¡ÆÁµÄʱºò¼ÓÔØsmallµÄͼƬ£¬ä¯ÀÀÆ÷»á¸ù¾ÝÆÁÄ»´óС×Ô¶¯¼ÓÔØÏàÓ¦µÄͼƬ¡£¶øÒ»µ©Äã°ÑËüת³ÉÁËÖ®ºó£¬ËüÃǶ¼ÔÚCSSÀïÃæÁË£¬¾ÍûÓÐ×Ô¶¯¼ÓÔØµÄÓÅÊÆÁË¡£ b£©°ÑCSSд³ÉÄÚÁªµÄ£º Èç¹ûÄãµÄCSSÖ»ÓÐ10K»òÕß20K£¬°ÑËüд³ÉÄÚÁªµÄ£¬Ò²Î´³¢²»¿É£¬¹È¸èºÍÌÔ±¦PC¾ÍÊÇÕâÑù¸ÉµÄ£¬Ö±½Ó°ÑÒ³Ãæ¼¸ºõËùÓеÄCSS¶¼Ð´³Éstyle±êÇ©·Åµ½htmlÀïÃæ£º
¡¡
Õâ¸öÔʼµÄCSSÓÐ66Kb£º
-rw-r¨Cr¨C 1 yincheng staff 66K Mar 12 10:00 taobao.css
|
gzipÖ®ºóΪ16Kb£º
ÕâÑùËäÈ»¶Ô»º´æ²»Àû£¬µ«ÊǶÔÓÚÊ״μÓÔØÊÇÓкܴóµÄ×÷Óõġ£ÒòΪÈç¹ûÄã°ÑCSS·Åµ½CDNÉÏ£¬ÎªÁ˵õ½Õâ¸öCSS£¬ËüÊ×ÏÈÐèÒª½øÐÐÓòÃû½âÎö£¬È»ºó½¨Á¢http/httpsÁ¬½Ó£¬Æä´Î²ÅÊÇÏÂÔØ¡£¶øÓÃÀ´×öÓòÃû½âÎöºÍ½¨Á¢Á¬½ÓµÄʱºòºÜ¿ÉÄÜÔçÒѰѷÅÔÚhtmlÀïÃæµÄCSSÏÂÔØÏÂÀ´ÁË£¬Õâ¸öʱ¼ä¿ÉÒÔ´ÓChromeµÄ¿ØÖÆÌ¨¹Û²ìµ½£º
¡¡
ΪÁ˼ÓÔØÕâ¸ö×ÊÔ´£¬DNS²éÕÒ»¨µôÁË0.5s£¬½¨Á¢tcpÁ¬½Ó»¨µôÁË0.95s£¬½¨Á¢httpsÁ¬½Ó»¨µôÁË0.6s£¬´Ó·¢ÇëÇóµ½ÊÕµ½µÚÒ»¸ö×Ö½ÚµÄÊý¾Ý£¨Time
To First Byte£©ÓÖ»¨µôÁË1.27s£¬×ܵÄʱ¼ä½Ó½ü3s¡£ ËùÒÔÕâ¸ö¿ªÏú»¹ÊǺܴóµÄ¡£»¹²»ÈçÖ±½Ó°ÑCSSǶµ½HTMLÀïÃæ¡£Èç¹ûÄãµÄCSSÌå»ýû´ïµ½3λÊý£¬¼ÓÉÏgzipѹËõ£¬·Åµ½htmlÀïÃæÓ¦¸ÃÊÇ¿ÉÈ¡µÄ¡£ [size=16]02ÓÅ»¯Í¼Æ¬[/size]
£¨1£©Ê¹ÓÃÏìӦʽͼƬ
ÏìӦʽͼƬµÄÓŵãÊÇä¯ÀÀÆ÷Äܹ»¸ù¾ÝÆÁÄ»´óС¡¢É豸ÏñËØ±Èppi¡¢ºáÊúÆÁ×Ô¶¯¼ÓÔØºÏÊʵÄͼƬ£¬ÈçÏÂʹÓÃsrcset£º
¡¡<img srcset="photo_w350.jpg 1x, photo_w640.jpg 2x"src="photo_w350.jpg"alt="">
|
Èç¹ûÆÁÄ»µÄppi = 1µÄ»°Ôò¼ÓÔØ1±¶Í¼£¬¶øppi = 2Ôò¼ÓÔØ2±¶Í¼£¬ÊÖ»úºÍmac»ù±¾ÉÏppi¶¼´ïµ½ÁË2ÒÔÉÏ£¬ÕâÑù×Ó¶ÔÓÚÆÕͨÆÁÄ»À´Ëµ²»»áÀË·ÑÁ÷Á¿£¬¶ø¶ÔÓÚÊÓÍøÄ¤ÆÁÀ´ËµÓÖÓиßÇåµÄÌåÑé¡£ Èç¹ûä¯ÀÀÆ÷²»Ö§³Ösrcset£¬ÔòĬÈϼÓÔØsrcÀïÃæµÄͼƬ¡£ µ«ÊÇÄã»á·¢ÏÖʵ¼ÊÇé¿ö²¢²»ÊÇÈç´Ë£¬ÔÚMacÉϵÄChromeËü»áͬʱ¼ÓÔØsrcsetÀïÃæµÄÄÇÕÅ2xµÄ£¬»¹»áÔÙÈ¥¼ÓÔØsrcÀïÃæµÄÄÇÕÅ£¬¼ÓÔØÁ½ÕÅͼƬ¡£Ë³ÐòÊÇÏȰÑËùÓÐsrcsetÀïÃæµÄ¼ÓÔØÍêÁË£¬ÔÙÈ¥¼ÓÔØsrcµÄ¡£Õâ¸ö²ßÂÔ±È½ÏÆæ¹Ö£¬Ëü¾ÓÈ»»á¼ÓÔØÁ½ÕÅͼƬ£¬Èç¹û²»Ð´src£¬Ôò²»»á¼ÓÔØÁ½ÕÅ£¬µ«ÊǼæÈÝÐÔ¾ÍûÄÇôºÃ¡£Õâ¸ö¿ÉÄÜÊÇÒòΪä¯ÀÀÆ÷ÈÏΪ£¬¼ÈÈ»ÓÐsrcset¾Í²»ÓÃдsrcÁË£¬Èç¹ûдÁËsrc£¬Óû§¿ÉÄÜÊÇÓÐÓõġ£ ¶øÊ¹ÓÃpicture¾Í²»»á¼ÓÔØÁ½ÕÅ£º
¡¡¡¡<picture> <source srcset="banner_w1000.jpg" media="(min-width: 801px)"> <source srcset="banner_w800.jpg
" media="(max-width: 800px)"> <img src="banner_w800.jpg" alt=""></picture>
|
ÈçÉÏ£¬Èç¹ûÒ³Ãæ¿í¶È´óÓÚ800px£¨PC£©£¬Ôò¼ÓÔØ´óͼ£¬¶øÔÚÊÖ»úÉϼÓÔØÐ¡Í¼¡£ÕâÑùдä¯ÀÀÆ÷¾ÍÖ»»á¼ÓÔØsourceÀïÃæµÄÒ»ÕÅͼƬ¡£µ«ÊÇÈç¹ûÊÇÓÃjs¶¯Ì¬²å½øÈ¥µÄ£¬Ëü»¹ÊÇ»áÈ¥¼ÓÔØÁ½ÕÅ£¬Ö»ÓÐдÔÚhtmlÀïÃæ¼ÓÔØ³õʼ»¯Ò³ÃæµÄʱºò²ÅÖ»¼ÓÔØÒ»ÕÅ¡£ Õâ¸öµÄ½â¾ö·½·¨ºÜ¼òµ¥£¬ä¯ÀÀÆ÷Ö§²»Ö§³Ösrcset£¬¿ÉÒÔÓÃjsÅжϡ£Èç¹ûÖ§³Ö£¬Ôò²»Ð´srcµÄÊôÐÔÁË£¬Èç¹û²»Ö§³Ö¾Í²»ÓÃдsrcsetÁË£º
var supportSrcset = 'srcset'indocument.('img');var surportPicture ='HTMLPictureElement'inwindow;
|
picture±ØÐëҪдimg±êÇ©£¬·ñÔòÎÞ·¨ÏÔʾ£¬¶ÔpictureµÄ²Ù×÷×îºó¶¼ÊÇÔÚimgÉÏÃæ£¬ÀýÈçʼþÊÇÔÚimg±êÇ©´¥·¢µÄ£¬pictureºÍsourceÊDz»»á½øÐÐlayoutµÄ£¬ËüÃǵĿíºÍ¸ß¶¼ÊÇ0¡£ ÁíÍâʹÓÃsource£¬»¹¿ÉÒÔ¶ÔͼƬ¸ñʽ×öһЩ¼æÈÝ´¦Àí£º
<picture> <source type="image/webp" srcset="banner.webp"> <img src="banner.jpg" alt=""></picture>
|
ÉÏÃæChromeä¯ÀÀÆ÷½«»á¼ÓÔØwebp¸ñʽµÄͼƬ£º
¡¡
webpÔÚ±£³ÖͬµÈÇåÎú¶ÈµÄÇé¿öÏ£¬Ìå»ý¿ÉÒÔ¼õÉÙÒ»°ë£¬µ«ÊÇĿǰֻÓÐChromeÖ§³Ö£¬SafariºÍfirefoxÒ»Ö±´¦ÓÚʵÑé½×¶Î£¬ËùÒÔÆäËüµÄä¯ÀÀÆ÷Èçfirefox½«»á¼ÓÔØjpg¸ñʽµÄÕÕÆ¬£º
¡¡
¿ÉÒÔ¿´µ½ÔͼÊÇ68k£¬×ª³ÉwebpÖ®ºó±ä³ÉÁË45k£¬Èç¹ûÄã°ÑjpgÓÐËðѹµÃ±È½ÏÀ÷º¦£¬ÀýÈçÖÊÁ¿Ñ¹Îª0.3£¬¿ÉÒÔ±Èwebp¸üС£¬µ«ÊÇÊ§ÕæÒ²±È½ÏÀ÷º¦ÁË¡£
£¨2£©ÑÓ³Ù¼ÓÔØÍ¼Æ¬
¶ÔÓںܶàÍøÕ¾À´Ëµ£¬Í¼Æ¬ÍùÍùÊÇÕ¼¾Ý×î¶àÁ÷Á¿ºÍ´ø¿íµÄµÄ×ÊÔ´¡£ÌرðÊÇÄÇÖÖÆÙ²¼Ê½Õ¹Ê¾ÐÔµÄÍøÕ¾£¬Ò»¸öÒ³ÃæÕ¹Ê¾50±¾Ê飬50ÕÅͼƬ£¬Èç¹ûÒ»¿ÚÆøÈ«²¿·Å³öÀ´£¬ÄÇÃ´Ò³ÃæµÄLoadedʱ¼ä½«»á½Ï³¤£¬²¢ÇÒÓÉÓÚ²¢ÐмÓÔØ×ÊÔ´ÊýÊÇÓÐÏÞ£¬Í¼Æ¬Ì«¶à»áµ¼Ö·ÅbodyºóÃæµÄjs½âÎö±È½ÏÂý£¬Ò³Ã潫½Ï³¤Ê±¼ä´¦ÓÚ²»¿É½»»¥×´Ì¬¡£ËùÒÔ²»ÄÜÒ»ÏÂ×Ó°ÑÈ«²¿Í¼Æ¬¶¼·Å³öÀ´£¬Õâ¶ÔÓÚÊÖ»úÉϵÄÁ÷Á¿Ò²ÊDz»ÀûµÄ¡£ Ϊ´Ë£¬±ÊÕß×öÁ˸öÀÁ¶è¼ÓÔØÍ¼Æ¬µÄ³¢ÊÔ£¬³õʼ¼ÓÔØÒ³ÃæµÄʱºò²¢²»È¥¼ÓÔØÍ¼Æ¬£¬Ö»Óе±Óû§Ï»¬µ½ÏàӦλÖõÄʱºò²Å°ÑͼƬ·Å³öÀ´¡£Ê×ÏÈ£¬äÖÈ¾Ò³ÃæµÄʱºò±ð°ÑͼƬµØÖ··Åµ½srcÉÏ£¬·Åµ½Ò»¸ödataµÄÊôÐÔ£º
ÈçÉÏ£¬·Åµ½data-srcºÍdata-srcsetÀïÃæ£¬ÉÏÃæ°ÑsrcµÄÊôÐÔд³ÉÁË¡±about:blank¡±£¬ÕâÊÇÒòΪ²»ÄÜËæ±ãдһ¸ö²»´æÔڵĵØÖ·£¬·ñÔò¿ØÖÆÌ¨»á±¨´í£º¼ÓÔØÊ§°Ü£¬Èç¹ûд³É¿Õ»ò²»Ð´£¬ÄÇôËü»áÈÏΪsrc¾ÍÊǵ±Ç°Ò³Ãæ¡£Èç¹ûд³Éabout:blank£¬´ó¼ÒÏà°²ÎÞÊ£¬²¢ÇÒ²»Í¬ä¯ÀÀÆ÷¼æÈÝÐԺᣠ½ÓÏÂÀ´½øÐÐλÖÃÅжϣ¬¼àÌýscrollʼþ£¬»Øµ÷º¯ÊýΪ£º
showImage(leftSpace = 500){ var scrollTop = $window.scrollTop(); var $containers = this.$imgContainers,
scrollPosition = $window.scrollTop() + $window.height(); for(var i = 0; i < $containers.length; i++)
{ //Èç¹û¿ìÒª»¬µ½Í¼Æ¬µÄλÖÃÁË var $container = $containers.eq(i);if($container.offset().top - scrollPosition
< leftSpace){ this.ensureImgSrc($container); } } }
|
µÚ5ÐÐforÑ»·£¬ÒÀ´Î¶ÔËùÓеÄͼƬ×ö´¦Àí£¬µÚ8ÐеÄifÅжϣ¬Èç¹û»¬¶¯µÄλÖÿìÒªµ½ÄÇÕÅͼƬÁË£¬Ôò°Ñsrc·Å³öÀ´£¬Õâ¸öλÖòîĬÈÏΪ500px£¬Èç¹ûͼƬ¼ÓÔØµÃ¿ìµÄ»°£¬ÕâÖÖÐÐΪ¶ÔÓÚÓû§À´ËµÊÇ͸Ã÷µÄ£¬Ëû¿ÉÄܲ»ÖªµÀͼƬÊÇÍùÏ»¬µÄʱºò²Å·Å³öÀ´µÄ£¬¼¸ºõ²»»áÓ°ÏìÌåÑ飬Èç¹ûÓû§»¬µÃºÜ¿ì£¬±¾Éí²»×öÕâÑùµÄ´¦Àí£¬Ò²²»¿ÉÄܼÓÔØµÃÕâô¿ì£¬Ò²ÊÇloadingµÄ״̬¡£ ÏÂÃæµÄº¯Êý°ÑͼƬ·Å³öÀ´£º
ensureImgSrc($container){ var $source = $container.find("source"); if($source.length && !$source.attr
("srcset")){ $source.attr("srcset", $source.data("srcset")); } var $img = $container.find("img:not
(.loading)"); if($img.length && $img.attr("src").indexOf
("//") < 0){ $img.attr("src", $img.data("src")); this.shownCount++; }} |
´úÂëÀïÃæÅжÏsrcÊDz»ÊÇÓС±//¡±£¬¼´ÎªÕý³£µÄµØÖ·£¬Èç¹ûûÓиøËü¸³Öµ£¬´¥·¢ä¯ÀÀÆ÷¼ÓÔØÍ¼Æ¬¡£²¢¼Ç¼ÒѾ·Å³öÀ´µÄ¸öÊý£¬ÕâÑù¿ÉÒÔ×ö¸öÓÅ»¯£¬µ±Í¼Æ¬È«²¿¶¼¼ÓÔØ»òÕß¿ªÊ¼¼ÓÔØÁË£¬°ÑscrollʼþÈ¡Ïûµô£º
init(){ //³õʼ»¯ var leftSpace = 0; this.showImage(leftSpace); //»¬¶¯ $window.on("scroll", this, this.
throttleShow);}ensureImgSrc($container){ //Èç¹ûÈ«²¿ÏÔʾ£¬offµôwindow.scrollif(this.shownCount >= this.allCount)
{ $window.off("scroll", this.throttleShow); }}
|
ÕâÑù¿ÉÒÔ´ó´ó¼õÉÙ´ò¿ªÒ³ÃæµÄÁ÷Á¿£¬¼Ó¿ìreadyºÍloadµÄʱ¼ä¡£ [size=16]03ѹËõºÍ»º´æ[/size]
£¨1£©gzipѹËõ
ÉÏÎÄÒÑÌá¼°£¬Ê¹ÓÃgzipѹËõ¿ÉÒÔ´ó´ó¼õÉÙÎļþµÄÌå»ý£¬Ò»¸ö180kµÄCSSÎļþ±»Ñ¹³ÉÁË30k£¬¼õÉÙÁË83%µÄÌå»ý¡£ÈçºÎ¿ªÆôѹËõÄØ£¬Õâ¸öºÜ¼òµ¥£¬Ö»ÒªÔÚnginxµÄÅäÖÃÀïÃæÌí¼ÓÕâ¸öÑ¡Ïî¾ÍºÃÁË£º
server{ gzip on; gzip_types text/plain application/java application/x-java text/java text/xml text/css;}
|
£¨2£©Cache-Control
Èç¹ûûÓÐÈκλº´æ²ßÂÔ£¬ÄÇô¶ÔÓÚÒÔÏÂÒ³Ãæ£º
¡¡¡¡<!DOCType html><html><head> <link href="test.css" rel="stylesheet"></head><body><picture> <source
type="image/webp" srcset="banner.webp"> <img src="banner.jpg" alt=""></picture>< src="normal.js"></></body></html>
|
×ܹ²ÓÐ4¸ö×ÊÔ´£¬html¡¢css¡¢imgºÍjs¸÷Ò»¸ö£¬µÚÒ»´Î¼ÓÔØ¶¼Îª200£º

Ë¢ÐÂÒ³ÃæµÚ¶þ´Î¼ÓÔØÊ±£º
¡¡¡¡
³ýÁËhtml£¬ÆäËüÈý¸öÎļþ¶¼ÊÇÖ±½ÓÔÚ±¾µØ»º´æÈ¡µÄ£¬Õâ¸öÊÇChromeµÄĬÈϲßÂÔ¡£htmlÊÇÖØÐÂÈ¥ÇëÇó£¬nginx·µ»ØÁË304
Not Modified¡£ ΪʲônginxÖªµÀûÓÐÐÞ¸ÄÄØ£¬ÒòΪÔÚµÚÒ»´ÎÇëÇóµÄʱºò£¬nginxµÄhttpÏìӦͷÀïÃæ·µ»ØÁËhtmlµÄ×î½üÐÞ¸Äʱ¼ä£º
¡¡¡¡
ÔÚµÚ¶þ´ÎÇëÇóµÄʱºò£¬ä¯ÀÀÆ÷»á°ÑÕâ¸öLast-Modified´øÉÏ£¬±ä³ÉIf-Modified-Since×ֶΣº
¡¡¡¡
ÕâÑùnginx¾Í¿ÉÒÔÈ¡±¾µØÎļþÐÅÏ¢ÀïµÄÐÞ¸Äʱ¼äºÍÕâ¸ö½øÐбȽϣ¬Ò»µ©Ê±¼äÒ»Ö»òÕßÔÚ´Ë֮ǰ£¬Ö±·µ»Ø304£¬¸æË߿ͻ§¶Ë´Ó»º´æÈ¡¡£±ÊÕßµÄnginx°æ±¾Ä¬ÈÏÊÇ¿ªÆôlast-modified£¬ÓÐÐ©ÍøÕ¾²¢Ã»ÓпªÆôÕâ¸ö£¬Ã¿´Î¶¼ÊÇ200ÖØÐÂÇëÇó¡£Èç¹û°ÑÎļþ±à¼Á˱£´æ£¬nginx»áÖØÐ·µ»ØÒ»¸ö×î½üÐÞ¸Äʱ¼ä¡£ ³ýÁËlast-modified×Ö¶ÎÖ®Í⣬»¹¿ÉÒÔÊÖ¶¯¿ØÖÆ»º´æÊ±¼ä£¬ÄǾÍÊÇʹÓÃCache-Control£¬ÀýÈçÉèÖÃͼƬ»º´æ30Ì죬¶øjs/css»º´æ7Ì죺
location ~* .(jpg|jpeg|png|gif|webp)$ { expires 30d;} location ~* .(css|js)$ { expires 7d;}
|
ÕâÑùÏìӦͷ¾Í»á¼ÓÒ»¸öCache-Control: max-age=604800(s)£º
¡¡¡¡
Õâ¸öºÍlast-modifiedÓÐÊ²Ã´Çø±ðÄØ£¬Èç¹û°Ñexpires¸Ä³É3s£º
location ~* .(css|js)$ { expires 3s;}
|
²»¶ÏˢУ¬¹Û²ì¼ÓÔØÇé¿ö£º µÚÒ»´ÎÇëÇó»¹ÊÇ200£¬µÚ¶þ´ÎÇëÇócss/js¶¼ÊÇcached£¬¹ýÁË3ÃëÖ®ºóµÄµÚÈý´ÎÇëÇó£¬css/js±ä³ÉÁË304£º ´ÓÕâÀï¿ÉÒÔ¿´³ömax-ageµÄÓÅÏȼ¶Òª´óÓÚlast-modified¡£Èç¹ûÒªÇ¿ÖÆ²»»º´æ£¬Ôò°Ñexpiresʱ¼ä¸Ä³É0. ÉÏÃæµÄ½á¹û¶¼ÊÇÓÃChromeʵÑ飬firefoxµÄºÍChrome±È½ÏÒ»Ö£¬¶øSafari²î±ð±È½Ï´ó£¬¼´Ê¹ÉèÖÃCache-Control£¬ÈÔÈ»»¹ÊÇ»áÓÐ304µÄÇëÇ󣬲¢ÇÒhtmlÓÀÔ¶ÊÇ200ÖØÐ¼ÓÔØ£¬ËüûÓаÑlast-modifiedºÍcache-control´øÉÏ¡£ ×ÛÉÏ£¬ÉèÖûº´æµÄ×÷ÓÃÒ»¸öÊǰÑ200±ä³É304£¬±ÜÃâ×ÊÔ´ÖØÐ´«Ê䣬µÚ¶þ¸öÊÇÈÃä¯ÀÀÆ÷Ö±½Ó´Ó»º´æÈ¡£¬Á¬httpÇëÇó¶¼²»ÓÃÁË£¬ÕâÑù¶ÔÓÚµÚ¶þ´Î·ÃÎÊÒ³ÃæÊǼ«ÎªÓÐÀûµÄ¡£ÉèÖûº´æ»¹ÓеÚÈýÖÖ¼¼Êõ£¬Ê¹ÓÃetag¡£
£¨3£©Ê¹ÓÃetag
ÉÏÃæµÄÁ½ÖÖ°ì·¨¶¼ÓÐȱµã£¬ÓÉÓںܶàÍøÕ¾Ê¹ÓÃÄ£°åäÖȾ£¬Ã¿´ÎÇëÇó¶¼ÊÇÖØÐÂäÖȾ£¬Éú³ÉµÄÎļþµÄlast-modified¿Ï¶¨ÊDz»Ò»ÑùµÄ£¬ËùÒÔlast-modifiedÔÚÕâÖÖ³¡¾°ÏÂʧЧ£¬¶øÊ¹ÓÃmax-ageÄãÎÞ·¨ÖªµÀ¾«È·¿ØÖÆÒ³ÃæµÄÊý¾Ýʲôʱºò»á·¢Éú±ä»¯£¬ËùÒÔmax-age²»Ì«ºÃʹ¡£Õâ¸öʱºòetag¾ÍÅÉÉÏÓó¡ÁË¡£nginx¿ªÆôetagÖ»ÐèÒªÔÚserverÅäÖÃÀïÃæ¼ÓÉÏÒ»ÐУº etag on; Ëùνetag¾ÍÊǶÔÎļþ×öµÄÒ»¸öУÑéºÍ£¬µÚÒ»´Î·ÃÎʵÄʱºò£¬ÏìӦͷÀïÃæ·µ»ØÕâ¸öÎļþµÄetag£¬ä¯ÀÀÆ÷µÚ¶þ´Î·ÃÎʵÄʱºò°Ñetag´øÉÏ£¬nginx¸ù¾ÝÕâ¸öetagºÍÐÂäÖȾµÄÎļþ¼ÆËã³öµÄetag½øÐбȽϣ¬Èç¹ûÏàµÈÔò·µ»Ø304¡£ ÈçÏ£¬µÚÒ»´Î·ÃÎÊ·µ»Øetag£º
¡¡¡¡
µÚ¶þ´Î·ÃÎÊ´øÉÏetag£¬ÔÚIf-None-Match×ֶΣº

·þÎñ·µ»Ø304£¬Èç¹ûÎÒ°ÑhtmlÎļþÐÞ¸ÄÁË£¬ÄÇôÕâ¸öetag¾Í»á·¢Éú±ä»¯£¬·þÎñ·µ»Ø200£º
¡¡¡¡
ÓÉÓÚetagҪʹÓÃÉÙÊýµÄ×Ö·û±íʾһ¸ö²»¶¨´óСµÄÎļþ£¬ËùÒÔetagÊÇÓÐÖØºÏµÄ·çÏÕ£¬Èç¹ûÍøÕ¾µÄÐÅÏ¢ÌØ±ðÖØÒª£¬Á¬ºÜСµÄ¸ÅÂÊÈç°ÙÍò·ÖÖ®Ò»¶¼²»ÔÊÐí£¬ÄÇô¾Í²»ÒªÊ¹ÓÃetagÁË¡£ ÎÒÃÇ¿ÉÒÔ¿´µ½youku¾ÍÊÇÓõÄetag£º
¡¡¡¡
ʹÓÃetagµÄ´ú¼ÛÊÇÔö¼ÓÁË·þÎñÆ÷µÄ¼ÆË㸺µ££¬ÌرðÊǵ±Îļþ±È½Ï´óʱ¡£ [size=16]04ÆäËüÓÅ»¯·½°¸[/size]
£¨1£©DNSÔ¤¶ÁÈ¡
ÉÏÎÄÒÑÌáµ½ÓòÃû½âÎö¿ÉÄܻỨºÜ³¤µÄʱ¼ä£¬¶øÒ»¸öÍøÕ¾¿ÉÄÜ»á¼ÓÔØºÜ¶à¸öÓòµÄ¶«Î÷£¬ÀýÈçʹÓÃÁËÈý¸ö×ÔÒÑ×ÓÓòÃûµÄ·þÎñ£¬ÔÙʹÓÃÁËÁ½¸öµÚÈý·½µÄCDN£¬ÔÙʹÓÃÁ˰ٶÈͳ¼Æ/¹È¸èͳ¼ÆµÄ´úÂ룬»¹Ê¹ÓÃÁËÆäËüÍøÕ¾ÉϵÄͼƬ£¬Ò»¸öÍøÕ¾ºÜ¿ÉÄÜÒª¼ÓÔØÆß¡¢°Ë¸öÓòµÄ×ÊÔ´£¬µÚÒ»´Î´ò¿ªÊ±£¬Òª×öÆß¡¢°Ë´ÎµÄDNS²éÕÒ£¬Õâ¸öʱ¼äÊǷdz£¿É¹ÛµÄ¡£Òò´Ë£¬DNSÔ¤¶ÁÈ¡¼¼ÊõÄܹ»¼Ó¿ì´ò¿ªËÙ¶È£¬·½·¨ÊÇÔÚhead±êÇ©ÀïÃæÐ´Éϼ¸¸ölink±êÇ©£º
¡¡<link rel="dns-prefection"href="https://www.google.com"><link rel="dns-prefection"href="https://www.google
-analytics.com"><link rel="dns-prefection"href="https://connect.facebook.net"><link rel="dns-prefection"href=
"https://googleads.g.doubleclic ... Blink rel="dns-prefection"href="https://staticxx.facebook.com"><link rel="
dns-prefection"href="https://stats.g.doubleclick.net">
|
ÈçÉÏ£¬¶ÔÒÔÉÏÏò¸öÍøÕ¾Ìáǰ½âÎöDNS£¬ÓÉÓÚËüÊDz¢Ðе쬲»»á¶ÂÈûÒ³ÃæäÖȾ¡£ÕâÑù¿ÉÒÔËõ¶Ì×ÊÔ´¼ÓÔØµÄʱ¼ä¡£
(2) htmlÓÅ»¯
°Ñ±¾µØµÄhtml²¼Êðµ½·þÎñÆ÷ÉÏǰ£¬¿ÉÒÔÏȶÔhtml×öÒ»¸öÓÅ»¯£¬ÀýÈç°Ñ×¢ÊÍremoveµô£¬°ÑÐÐǰËõ½øÉ¾µô£¬ÈçÏ´¦ÀíǰµÄÎļþ£º
¡¡<!DOCType html><html> <head> <meata charset="utf-8"> </head></html> <body> <!-main content--> <div>hello,
world</div></body></html>
|
´¦ÀíºóµÄÎļþ£º
¡¡<!DOCType html><html><head><meata charset="utf-8"></head></html><body><div>hello, world</div></body></html>
|
ÕâÑù´¦ÀíµÄÎļþ¿ÉÒÔÃ÷ÏÔ¼õÉÙhtmlµÄÌå»ý£¬ÌرðÊǵ±Ò»¸ötabÊÇ4¸ö¿Õ¸ñ»òÕß8¸ö¿Õ¸ñʱ¡£ ¿ÉÒÔ×÷Ò»¸ö±È½Ï£¬ÒÔyoukuΪÀý£¬°ÑËüµÄhtml¸´ÖƳöÀ´£¬È»ºóÔÙ°ÑËüÿÐеÄÐÐÊ׿ոñÈ¥µô£º

´Ó687K¼õÉÙÁË200Kb£¬Ô¼Îª1/3£¬Õâ¸öÁ¿»¹ÊǺܿɹ۵ġ£¶ÔÆäËüÍøÒ³µÄʵÑ飬¿ÉÒÔ·¢ÏÖÕâÑù´¦ÀíÆÕ±é¼õÉÙ1/3µÄÌå»ý¡£¶øÇÒÕâÑù×ö¼¸ºõÊÇûÓзçÏÕ£¬³ýÁËpre±êÇ©²»Äܹ»È¥µôÐÐÊ×Ëõ½øÖ®Í⣬ÆäËüµÄ¶¼Õý³£¡£
£¨3£©´úÂëÓÅ»¯
¶Ô×Ô¼ºÐ´µÄ´úÂë×öÓÅ»¯£¬Ìá¸ßÔËÐÐËÙ¶È£¬ÀýÈç˵html±ðǶÌ×Ì«¶à²ã£¬·ñÔò¼ÓÖØÒ³ÃælayoutµÄѹÁ¦£¬CSSµÄÑ¡ÔñÆ÷±ðд̫¸´ÔÓ£¬²»È»Æ¥ÅäµÄ¼ÆËãÁ¿»á±È½Ï´ó£¬¶ÔJS£¬±ðÀÄÓñհü£¬±Õ°ü»á¼ÓÉî×÷ÓÃÓòÁ´£¬¼Ó³¤±äÁ¿²éÕÒµÄʱ¼ä£¬ÈçÏ£º
var a = 15;function foo(){ var b = a + 3; function bar(){ var c = b + a; } returnbar();}
|
ÔÚbarÕâ¸öº¯ÊýÀïÃæ£¬ËüΪÁ˲éÕÒaÕâ¸ö±äÁ¿£¬ÐèÒªÔÚbarµÄ×÷ÓÃÓò£¬ÔÙµ½fooµÄ×÷ÓÃÓò£¬ÔÙµ½È«¾Ö×÷ÓÃÓò½øÐвéÕÒ¡£ ÉÏÎÄ´ÓÒ³Ãæ¶ÂÈû¡¢Í¼Æ¬ÓÅ»¯¡¢¿ªÆô»º´æ¡¢´úÂëÓÅ»¯µÈ½Ç¶È½éÉÜÁËÓÅ»¯Ò³Ãæ¼ÓÔØµÄ·½°¸£¬µ«ÆäʵÉÏÃæµÄÖ»ÊÇһЩ²Î¿¼½¨Ò飬¿ÉÄܲ»ÄÜ·ÅÖ®Ëĺ£½Ôͨ£¬¶ÁÕßÓ¦¸ÃÒª½áºÏ×Ô¼ºÍøÕ¾µÄʵ¼ÊÇé¿ö×öһЩ·ÖÎö£¬ÕÒµ½Æ¿¾±ÎÊÌâ¡£Èç¹û²»È·Êµ¾Í·´¸´Êµ¼ù£¬Ö±µ½·¢ÏÖһЩºÏÊʵķ½·¨¡£
|