ç¼åå¿«éå è½½ç HTML 页é¢
以䏿巧齿¯åºäºéç¨çç¥è¯åç»éªã
ä¸ä¸ªå¥½ç页é¢ä¸ä» è¦ç»è®¿å®¢æä¾ä¸ä¸ªæ´æäº¤äºæ§çç«ç¹ï¼åæ¶ä¹éè¦éä½ä½ çæå¡å¨åååç½ç»è¯·æ±ãåè 对äºé£äºé«è®¿é®éçç«ç¹ï¼æå¨æçç¸æ§æ°é»åºç°çç¹æ®æ åµä¸ä¼åºç°æµéçªå¢çç«ç¹æ¥è¯´å°¤ä¸ºå ³é®ã
页é¢å è½½æ§è½çä¼åä¸ä» ä» æ¯é对é£äºå¸¦å®½æéçæ¨å·ä¸ç½æç§»å¨è®¾å¤ç¨æ·éè¦ççå 容ï¼å¯¹äºæä¾ç»å®½å¸¦ç¨æ·è®¿é®çå å®¹åæ ·éè¦å¹¶ä¸å¯ä»¥å¯¼è´å·¨å¤§çæåï¼åªæå¯¹äºé£äºæ¥ææå¿«ç½éç访客ã
æå·§
>åå°é¡µé¢ç大å°
ç´è³ä»æ¥ï¼é¡µé¢ç大å°ä»æ¯é¡µé¢å è½½æ§è½çæéè¦å ç´ ã
éè¿æ¶é¤ä¸å¿ è¦ç空ç½å注éï¼é常称为æå°åï¼ä»¥åå°å èèæ¬å CSS ç§»è³å¤é¨æä»¶æ¥åå°é¡µé¢å¤§å°ï¼å¯ä»¥æé«ä¸è½½æ§è½ï¼èæ é对页é¢ç»æè¿è¡å ¶ä»æ¹å¨ã
è¯¸å¦ HTML Tidy è¿ç±»çå·¥å ·å¯ä»¥ä»ææç HTML æºæä»¶ä¸èªå¨æªå»è¡é¦ç©ºæ ¼åé¢å¤ç空è¡ï¼å ¶ä»å·¥å ·åå¯ä»¥éè¿éæ°æ ¼å¼åæºä»£ç æ¥âå缩âJavaScript æè éè¿æ··æ·æºç å°é¿æ è¯ç¬¦æ¿æ¢ä¸ºçæ è¯ç¬¦æ¥å尿件大å°ã
æå°åæä»¶æ°é
åå°ä¸ä¸ªé¡µé¢å¼ç¨çæä»¶æ°éå¯ä»¥éä½å¨ä¸è½½ä¸ä¸ªé¡µé¢çè¿ç¨ä¸éè¦ç HTTP è¯·æ±æ°éï¼ä»èåå°è¿äºè¯·æ±çæ¶åæ¶é´ã
æ ¹æ®å
¶ç¼åè®¾ç½®ï¼æµè§å¨å¯è½ä¼ä¸ºæ¯ä¸ªæå¼ç¨çæä»¶åéä¸ä¸ªå¸¦ If-Modified-Since æ 头ç请æ±ç» web æå¡å¨ï¼ä»¥æ¥è¯¢è¿äºæä»¶èªä¸æ¬¡å è½½åæ¯å¦æè¢«ä¿®æ¹ãæ¥è¯¢å¼ç¨æä»¶ä¸æ¬¡ä¿®æ¹æ¶é´ä¼è±è´¹å¤ªå¤æ¶é´ï¼å¯¼è´ç½é¡µé¦å±å»¶è¿ï¼è¿æ¯å ä¸ºå¨æ¸²æé¡µé¢ä¹åæµè§å¨å¿
须确认æ¯ä¸ªæä»¶çä¿®æ¹æ¶é´ã
å¦æä½ å¨ CSS ä¸ç»å¸¸ä½¿ç¨èæ¯å¾çï¼å¯ä»¥éè¿å°å¾çå并为ä¸å¼ å¾çï¼å³ç²¾çµå¾ï¼æ¥åå° HTTP æ¥æ¾æ¬¡æ°ãç¶åï¼æ¯æ¬¡éè¦ä½¿ç¨èæ¯å¾çæ¶ï¼åªéåºç¨ç¸åçå¾çï¼å¹¶éå½è°æ´ x/y åæ å³å¯ãè¿ç§ææ¯æéç¨äºå°ºå¯¸æéçå ç´ ï¼å¹¶ä¸éç¨äºææèæ¯å¾çç使ç¨ãä¸è¿ï¼åå° HTTP 请æ±ååå¼ å¾çç¼åæå©äºç¼©ç页é¢å è½½æ¶é´ã
使ç¨å 容ååç½ç» CDN
卿¬æä¸ï¼CDN æ¯ä¸ç§ç¼©çæå¡å¨ä¸è®¿é®è ä¹é´ç©çè·ç¦»çææ®µãéçæå¡å¨å访é®è ä¹é´è·ç¦»çå¢å ï¼å è½½æ¶é´ä¹ä¼å¢å ãåè®¾ä½ çç½ç«æå¡å¨ä½äºç¾å½ï¼è访é®è æ¥èªå°åº¦ï¼é£ä¹å°åº¦è®¿é®è ç页é¢å è½½æ¶é´å°è¿é«äºç¾å½è®¿é®è ã
CDN æ¯ä¸ä¸ªåå¸å¨ä¸åå°çä½ç½®çæå¡å¨ç½ç»ï¼å®ä»¬ååå·¥ä½ä»¥ç¼©çç¨æ·ä¸ç½ç«ä¹é´çè·ç¦»ãCDN åå¨ç½ç«çç¼åçæ¬ï¼å¹¶éè¿ç¦»ç¨æ·æè¿çç½ç»èç¹å访é®è æä¾è¿äºçæ¬ï¼ä»èåå°å»¶è¿ã
è¿ä¸æ¥é 读ï¼
åå°ååæ¥è¯¢
æ¯ä¸ªç¬ç«çååé½ä¼æ¶è DNS æ¥è¯¢çæ¶é´ï¼é¡µé¢å è½½æ¶é´ä¼éçç¬ç«ååæ°éãCSS 龿¥æ°éãJavaScript è¿æå¾çèµæºçæ°éå¢å èå¢å ã
è¿æ¡å¯è½ç®ä¸ä¸å®ç¨ï¼ç¶èï¼å¨ä½ ç页é¢ä¸å°½éå°çä½¿ç¨æ¥èªä¸åååçèµæºé¾æ¥ã
ç¼åéç¨çå 容
ç¡®ä¿ä»»ä½å 容å¯ä»¥è¢«ç¼åï¼å¹¶ä¸æ¥æä¸ä¸ªåççæææã
å°¤å
¶è¦æ³¨æ Last-Modified æ 头ãå®å¯ä»¥å®ç°é«æç页é¢ç¼åï¼éè¿è¿ä¸ªæ 头ï¼å¯ä»¥åç¨æ·ä»£çä¼ è¾¾å®æ³è¦å è½½çæä»¶çç¸å
³ä¿¡æ¯ï¼ä¾å¦æä»¶çæåä¿®æ¹æ¶é´ã大夿° web æå¡å¨ä¼æ ¹æ®åå¨å¨æä»¶ç³»ç»ä¸çæåä¿®æ¹æ¥æï¼èªå¨å° Last-Modified æ 头éå å°éæé¡µé¢ï¼å¦ .htmlã.cssï¼ä¸ã对äºå¨æé¡µé¢ï¼å¦ .phpã.aspxï¼ï¼å½ç¶æ æ³åå°è¿ä¸ç¹ï¼å æ¤ä¸ä¼åéæ å¤´ä¿¡æ¯ã
å æ¤ï¼ç¹å«æ¯å¯¹äºå¨æçæç页é¢ï¼å¯¹è¿ä¸ä¸»é¢è¿è¡ä¸äºç ç©¶æ¯æççãè¿å¯è½ä¼æ¶åå°ä¸äºé®é¢ï¼ä½å¯¹äºéå¸¸æ æ³ç¼åç页颿¥è¯´ï¼è¿å°ä¼èç大éç页é¢è¯·æ±ã
æ´å¤ä¿¡æ¯ï¼
髿尿å页é¢ç»ä»¶
å¨é¡µé¢æåæ¾ç¤ºæ¶ï¼ä¼é¦å ä¸è½½é¡µé¢å 容以åæéç CSS å JavaScriptï¼è¿æ ·å¨é¡µé¢å è½½æ¶ç¨æ·å¯ä»¥æå¿«è·å¾å¤è§çåé¦ãç±äºå 容é叏齿¯ææ¬ï¼æå©äºå¨ä¼ è¾è¿ç¨ä¸å缩ï¼ä»èä¸ºç¨æ·æä¾æ´å¿«çååºã
ä»»ä½éè¦å¨é¡µé¢å è½½å®æåæè½ä½¿ç¨ç卿åè½ï¼é½åºå ç¦ç¨ï¼ç¶åå¨é¡µé¢å è½½å®æååå¯ç¨ãè¿å°ä½¿ JavaScript å¨é¡µé¢å 容ä¹åå è½½ï¼ä»èæ¹å页é¢å è½½çæ´ä½å¤è§ã
åå°å èèæ¬çæ°é
å
èèæ¬å¯¹é¡µé¢å è½½çå½±åå¾å¤§ï¼å 为解æå¨å¿
é¡»åå®å
èèæ¬å¯è½ä¼å¨è§£æè¿ç¨ä¸ä¿®æ¹é¡µé¢ç»æãåå°å
èèæ¬ç使ç¨ï¼å°¤å
¶æ¯åå°ä½¿ç¨ document.write() æ¥è¾åºå
容ï¼å¯ä»¥æé«é¡µé¢çæ´ä½å è½½é度ã为ç°ä»£æµè§å¨ä½¿ç¨ DOM API æ¥æä½é¡µé¢å
容ï¼è䏿¯ä½¿ç¨ document.write()ã
使ç¨ç°ä»£ CSS åæææ è®°
使ç¨ç°ä»£ CSS åå°æ è®°çç¨éï¼å¯ä»¥åå°å¯¹ï¼é´éï¼å¾ççéæ±ãå¨å¸å±æ¹é¢ï¼å¾çé常å¯ä»¥ç¨å ·ææ ·å¼çææ¬æ¥æ¿ä»£ï¼è¿æ ·ä¼âèçâ许å¤èµæºã
使ç¨åæ³æ è®°è¿æå ¶ä»ä¼ç¹ãé¦å ï¼æµè§å¨å¨è§£é HTML æ¶æ éåéè¯¯æ ¡æ£ï¼é¤äºä¸äºå²çæ§çé®é¢ï¼ä¾å¦ï¼æ¯å è®¸ç¨æ·è¾å ¥æ ¼å¼ä¸ä¸è´ï¼ç¶ååç¨ç¨åºâæ ¡åâæç»ä¸åå¢ï¼è¿æ¯å 强约æè§åï¼éå¶ç¨æ·è¾å ¥çæ ¼å¼ï¼ï¼ã
åè ï¼åæ³æ è®°å¯ä»¥è®©é£äºç»ä½ çç½ç«åé¢å¤ççå·¥å ·åè½æå¤§åãä¾å¦ï¼HTML Tidy å¯ä»¥ç§»é¤ç©ºç½ç¬¦åå¯éçç»ææ è®°ï¼ç¶èï¼å¨æä¸¥éçé误æ è®°çç½é¡µä¸è¿äºå·¥å ·ä¾¿æ æ³å·¥ä½ã
ç»å 容åå
ä½¿ç¨ table å¸å±æ¯ä¸ç§ä¸åºè¯¥åéç¨çä¼ ç»æ¹æ³ï¼èåºè¿ç¨æµ®å¨ãå®ä½ãå¼¹æ§çæç½æ ¼æ¥å¸å±ã
å½ç¶ï¼table 仿¯ä¸å¤±ä¸ºä¸ç§ææçå±ç¤ºè¡¨æ ¼æ°æ®çæ¹å¼ã为äºå¸®å©æµè§å¨æ´å¿«éçæ¸²æä½ ç页é¢ï¼ä½ åºè¯¥é¿å åµå¥ tableã
ç¸è¾äºè¿ç§æ·±åº¦çåµå¥ï¼
<table>
<table>
<table>
â¦
</table>
</table>
</table>
ç¨ä¸å¾è¿æ ·çéåµå¥ table æ div 伿´å¥½ä¸äºï¼
<table>
â¦
</table>
<table>
â¦
</table>
<table>
â¦
</table>
å¯åè§ CSS å¼¹æ§çå¸å±å CSS ç½æ ¼å¸å± è§èã
æå°ååå缩 SVG èµæº
大夿°ç»å¾åºç¨ç¨åºçæç SVG é常å å«ä¸å¿ è¦çå æ°æ®ï¼è¿äºå æ°æ®å¯ä»¥å é¤ãé ç½®æå¡å¨ï¼å¯¹ SVG èµæºåºç¨ gzip å缩ã
æå°ååå缩å¾ç
大å¾åä¼å¯¼è´é¡µé¢å è½½æ¶é´å»¶é¿ã请èèå¨å°å¾çæ·»å å°é¡µé¢ä¹åå¯¹å ¶è¿è¡å缩ï¼ä½¿ç¨ Photoshop çå¾çå¤çå·¥å ·å ç½®çå缩åè½ï¼æä½¿ç¨ Compress Jpeg æ Tiny PNG çä¸é¨å·¥å ·ã
æå®å¾ååè¡¨æ ¼ç大å°
妿æµè§å¨è½ç«å³ç¡®å®å¾ååè¡¨æ ¼çé«åº¦å/æå®½åº¦ï¼å°±è½æ¾ç¤ºç½é¡µèæ ééæ°è°æ´å
容ãè¿ä¸ä»
è½å 快页é¢çæ¾ç¤ºé度ï¼è¿è½é²æ¢é¡µé¢å è½½å®æååºç°ä»¤äººè®¨åçå¸å±ååãå æ¤ï¼åºå°½å¯è½ä¸ºå¾çæå® height å widthã
è¡¨æ ¼å¯ä»¥ä½¿ç¨ CSS éæ©å¨ï¼ç»¼åæ§è½ï¼
table-layout: fixed;
å¹¶ä¸ç¨ç¨ <col> å <colgroup> å
ç´ æ¥æå®å宽ã
对å¾çä½¿ç¨æå è½½
é»è®¤æ
åµä¸ï¼å¾çæ¯ç«å³å è½½çï¼ä¹å°±æ¯è¯´ï¼ä¸æ¦å¾çå¨ HTML ä¸è¢«å¤çï¼å°±ä¼ç«å³è·å并渲æãææç«å³å è½½çå¾çé½ä¼å¨çªå£ç load äºä»¶åéä¹åå¾å°æ¸²æã妿æ¹ç¨æå è½½å¾åï¼æµè§å¨å°±ä¼æç¼å è½½å¾åï¼ç´å°éè¦ç»å¶å¯è§è§å£æ¶åå è½½ã
è¦å°å¾çæ 记为âæå è½½âï¼å¯æå®å
¶ loading 屿§çå¼ä¸º lazyãè¿æ ·è®¾ç½®åï¼åªæå¨éè¦æ¶æä¼å è½½å¾çã
<img src="./images/footerlogo.jpg" loading="lazy" alt="MDN logo" />
请注æï¼load äºä»¶è§¦åæ¶ï¼æå è½½çå¾çå¯è½ä¸å¯ç¨ãå¯ä»¥éè¿æ£æ¥ complete å¸å°å±æ§ç弿¯å¦ä¸º true æ¥ç¡®å®ç»å®å¾çæ¯å¦å·²å è½½ã
åççéæ©ç¨æ·ä»£ç
为使页é¢è®¾è®¡å¾å°æå¤§æåï¼åºç¡®ä¿å¨å·¥ç¨ä¸æå®ä¸ä¸ªåççç¨æ·ä»£çï¼user agentï¼ãä¸è¦å¥¢æ±ä½ çå å®¹å¨æææµè§å¨ä¸é½å®ç¾çå±ç°ï¼ç¹å«æ¯å¨é£äºä½çæ¬çæµè§å¨ä¸ã
çæ³æ åµä¸ï¼ä½ ç页é¢è¿è¡çæå°ç¯å¢è¦åºäºç°ä»£æµè§å¨ï¼è¿ä¸ªæµè§å¨èµ·ç è¦æ¯æä¸äºç¸å ³çæ åãå¯ä»¥æ¯æè¿çæ¬ç FirefoxãIEãè°·æ ChromeãOpera å Safariã
ä½è¦æ³¨æçæ¯ï¼æ¬æååºçè®¸å¤æå·§é½æ¯å¸¸è¯æ§ææ¯ï¼éç¨äºä»»ä½ç¨æ·ä»£çï¼å¹¶å¯åºç¨äºä»»ä½ç½é¡µï¼ä¸æµè§å¨æ¯æè¦æ±æ å ³ã
å°½å¯è½ä½¿ç¨ async å defer
ç¡®ä¿ JavaScript èæ¬å ¼å®¹ async å deferï¼ä»»ä½æ¶åé½è¦å°½å¯è½ä½¿ç¨ asyncï¼ç¹å«æ¯å½ä½ æè¾å¤ç script æ ç¾æ¶ã
è¿æ ·å¨å è½½ JavaScript çè¿ç¨ä¸é¡µé¢å°±ä¸ä¼éæ°ç»å¶ï¼å¦åï¼æµè§å¨å¨ä¸å ·æè¿äºç¹æ§ç script æ ç¾åå°±ä¸ä¼éç»ä»»ä½ä¸è¥¿ã
注æï¼è¿äºç¹æ§å¨é¡µé¢ç¬¬ä¸æ¬¡å è½½æ¶ä¼ææå¸®å©ï¼ä½ å¯ä»¥è¿æ ·ç¨ä½ä¸è½æé å®å¨ææçæµè§å¨ä¸èµ·ä½ç¨ãå¦æä½ éµå¾ªæåååºäºé常ä¼ç§ç JavaScript 代ç ï¼ä¹ä¸å¿ è¦åå»ä¿®æ¹å®äºã
页é¢ç»æç¤ºä¾
<html>-
-
CSS æä»¶ç¨æ¥ä¿®é¥°é¡µé¢å¤è§ãå¨è°è¯ç»´æ¤ä¸æä¸ç¸å ³ç CSS æåå¨ä¸åæä»¶ä¸ï¼ä¸å°½éåå°æä»¶çæ°éå¯ä»¥æé«æ§è½ã<link> -
JavaScript æä»¶ç¨æ¥å®ç°é¡µé¢å è½½æ¶éè¦ç彿°ï¼èé¿å å¨é¡µé¢å è½½åæè½è¿è¡ç JavaScriptãå¨è°è¯ç»´æ¤ä¸æä¸ç¸å ³ç JavaScript æåå¨ä¸åæä»¶ä¸ï¼ä¸å°½éåå°æä»¶çæ°éå¯ä»¥æé«æ§è½ã
-
-
ç¨æ·è½å¨å®æ´é¡µé¢ä¸è½½å®ä¹åå°±å¯ä»¥çå°ç页é¢å°ååï¼
/<header>/<main>ï¼ã<table>-
ä»»ä½ç¨äºæ§è¡äº¤äºçèæ¬ã交äºèæ¬é常åªè½å¨é¡µé¢å®å ¨å 载并åå§åææå¿ è¦å¯¹è±¡åè¿è¡ã没æå¿ è¦å¨é¡µé¢å 容ä¹åå è½½è¿äºèæ¬ãè¿åªä¼åæ ¢é¡µé¢å è½½çåå§å¤è§ã
å°½éåå°æä»¶æ°é以æé«æ§è½ï¼åæ¶å°æ å ³ç JavaScript ä¿åå¨åç¬çæä»¶ä¸ä»¥æ¹ä¾¿ç»´æ¤ã
-
-
åè§
- 书ç±ï¼Andy King æ°åçè®©ä½ çç«ç¹è®¿é®æ´å¿«
- é常æ£ã讲çå¾å ¨çå å¿«ç«ç¹è®¿é®çæä½³å®è·µèµæï¼æ¥èª Yahoo!ï¼
- ç¨æ¥åæåä¼åçå·¥å ·ï¼Google PageSpeed å·¥å ·