Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
400% µÄ·ÉÔ¾£­web Ò³Ãæ¼ÓÔØËÙ¶ÈÓÅ»¯ÊµÕ½
 
×÷Õߣºrapospectre À´Ô´£º51CTO ·¢²¼ÓÚ£º2016-10-18
  2334  次浏览      27
 

ǰÑÔ

Ò»¸öÍøÕ¾µÄ¼ÓÔØËÙ¶ÈÓжàÖØÒª? ·´ÕýÎÒÏàÐÅ֮ǰÀ´²©Ö÷ÍøÕ¾µÄÈËÖÁÉÙÓÐ 50% ÔÚ¼ÓÔØÍê³Éǰ¹Ø±ÕÁ˱¾Õ¾¡£ ΪɶÄó? ¿´Í¼

Ê×Ò³ÍêÕû¼ÓÔØÊ±¼ä 8.18s£¬¿´À´ÄܽøÀ´¿´²©Ö÷ÍøÕ¾µÄÈ˶¼ÊÇÕæ°®Ñ½£¬¹þ¹þ¡£ Õý³£À´½²Ò»¸öÍøÒ³ 4s ¼ÓÔØ²»Íê¾Í»áÁ÷ʧºÜ´óÒ»²¿·ÖÓû§£¬¶ø²©Ö÷µÄÍøÕ¾¼ÓÔØÊ±¼ä¾¹È»´ïµ½ÁË 8s »¹ÊÇÔÚµçÄÔ¶Ë£¬Èç¹ûÔÚÒÆ¶¯¶Ë£¬¼ÓÔØÊ±¼ä»á¸ü¾Ã£¬ÌåÑé»á¸ü²î¡£ ÕâÑùµÄ»°ÍøÕ¾×öµÃÔÙÄÑ¿´ÅúÅÐÕß½ø²»À´²»Êǰ״îÂÓÚÊÇÕë¶Ô web Ò³Ãæ¼ÓÔØËٶȵÄÓÅ»¯ÆÈÔÚü½Þ¡£

»ùÓÚ²©Ö÷ÒÔǰÓÅ»¯¹ýÆäËûÍøÕ¾£¬ÓÚÊDz©Ö÷×¼±¸°ÑÕâ´ÎµÄÓÅ»¯¹ý³Ì¼Ç¼ÏÂÀ´·ÖÏí¸ø´ó¼Ò½è¼ø¡£

1. Ò³Ãæ·ÖÎö

ÏÈÀ´¿´ÓÅ»¯Ç°µÄÒ³Ãæ£º

¼ÓÔØÊ±¼ä 8.18s £¬Ò»¹² 33 ¸ö ÇëÇ󣬼ÓÔØ 1.38MB ¡£ ¿ÉÒÔ¿´µ½¶ÔÓÚÍøËÙ½ÏÂýµÄä¯ÀÀÕß¹â¼ÓÔØ×ÊÔ´¾ÍÐèÒª 5s ÒÔÉÏ£¬ÔÙ¼ÓÉÏ 33 ¸öÇëÇóÇл»¿ªÏú£¬¼òÖ±²»ÄÜÓä¿ìµÄÍæË£¡£ ËùÒÔ½ÓÏÂÀ´µÄÓÅ»¯ÊֶξÍÒª´Ó¼ÓÔØÁ÷Á¿ºÍÇëÇóÊýÁ¿ÈëÊÖ£º

2. ÓÅ»¯Í¼Æ¬

ͼƬÔÚÍøÂçÁ÷Á¿ÖÐÕ¼ÓкܴóµÄ±ÈÖØ£¬Òò´ËÓÅ»¯Í¼Æ¬¶ÔÓÚ¼õÉÙÁ÷Á¿ÓÐ×ÅÖÁ¹ØÖØÒªµÄ×÷Óá£

ºÏ²¢Ð¡Í¼Æ¬:

ºÜ¶àÒ³ÃæÓкܶàСͼ±ê£¬Ò»¸öÒ»¸ö¼ÓÔØ¾ÍÏ൱ÓÚÒ»¸öÒ»¸öÇëÇ󣬽«ÕâЩСͼƬºÏ²¢³ÉÒ»¸ö´óͼƬ£¬ÓÃcss ¿ØÖÆÏÔʾ·¶Î§£¬ÕâÑù¾ÍÖ»ÐèÒªÒ»¸öÇëÇ󼴿ɼÓÔØÍêËùÓÐСͼƬ£¬Ë²¼ä¾Í»á¼õÉٺܶàÍøÂçÇëÇó¡£

ÓÅ»¯Í¼Æ¬¸ñʽ£º

ºÜ¶àͼƬûÓо­¹ýÓÅ»¯Ö±½ÓÉÏ´«µ½ÍøÒ³ÖлáÕ¼Óúܶà¶îÍâµÄÁ÷Á¿£¬±ÈÈçÒ»ÕÅÆÁÄ»´óСµÄ½ØÍ¼£¬ÓýØÍ¼¹¤¾ßÖ±½Ó½ØÍ¼ºóµÄ´óС´ó¸ÅÓÐ 1MB £¬´Ëʱֱ½ÓÉÏ´«µ½ÍøÒ³ÖоÍÖ±½ÓÕ¼ÓÃÁË 1MB Á÷Á¿£¬µ«ÆäʵÎÒÃÇÍêÈ«¿ÉÒÔÖ»ÎþÉüËü 40% µÄÖÊÁ¿»»È¡ËõС 10 ±¶µÄ´óС£¬ÍøÉÏÓкܶàת»¯ web ͼƬµÄÍøÕ¾£¬µ±È»Èç¹ûÄãÓÐ photoshop µÄ»°ÍêÈ«¿ÉÒÔ×Ô¼ºµ¼³ö£º

½«Í¼Æ¬ÔÚ ps Öдò¿ª£¬È»ºóµã»÷²Ëµ¥À¸ ¡°Îļþ¡± ²Ëµ¥£¬Ñ¡Ôñ ¡°´¢´æÎª web ËùÓøñʽ¡±£¬³öÏÖÈç϶Ի°¿ò£º

Ò»°ãÇé¿öÏ jpg ͼƬѡÔñÆ·ÖÊÖм´¿É£¬png ¸ñʽͼƬѡÔñ png8 ¼´¿É£¬µ«×¢ÒâÓÐ͸Ã÷±³¾°µÄ png ͼƬҪѡÔñ png24 £¬·ñÔò͸Ã÷±³¾°Öлá³öÏְױߣ¬gif ͼƬѡÔñ gif64 ÎÞ·ÂÉ«¼´¿É¡£

Ò»°ã¾­¹ýÓÅ»¯µÄͼƬ´óСÖÁÉÙ»áÓÐ 3±¶ Ö®²î£¬Í¼Æ¬Ô­´óСԽ´óÓÅ»¯µÄ½á¹û»áÔ½ºÃ¡£

²©Ö÷µÄÍøÕ¾×îÏÔÑÛµÄͼƬ¾ÍÊÇҳüÉÏÄǸöÓĹíµÄͼƬÀ²£¬ËùÒÔ¾ÍÏÈÄÃËü¿ªµ¶£¬¾­¹ýÒÔÉϲ½ÖèÓÅ»¯£º

 

˲¼ä¼õС 4 ±¶£¬Êµ¼ÊЧ¹û¿ÉÒÔ¿´¿´£¬´ú±í×Ų©Ö÷ÃÅÃæµÄͼƬ¾­¹ýÓÅ»¯ºóºÍÓÅ»¯Ç°ÏÔʾЧ¹û²¢Ã»ÓÐÃ÷ÏÔÇø±ð£¬¶øÎļþ´óСȴÏà²îÁË 4 ±¶¡£

3. ʹÓÃÃâ·Ñ cdn ¼ÓÔØµÚÈý·½×ÊÔ´

ËùÓÐÍøÕ¾¶¼»áÓõ½µÚÈý·½×ÊÔ´£¬¶ÔÓÚµÚÈý·½×ÊÔ´£¬Èç¹ûÑ¡ÔñÈÃ×Ô¼ºµÄ·þÎñÆ÷Ìṩ£¬ÄÇô¶ÔÓÚСÐÍÕ¾µã£¬±¾¾Í²»´óµÄ´ø¿íÏ൱һ²¿·Ö»¹Òª±»¹«¹²×ÊÔ´Õ¼Óã¬ÎÞÐÎÖ®ÖÐѹËõÁË·þÎñÆ÷´ø¿í£¬Èç¹û°ÑÕⲿ·Ö×ÊÔ´ÈõÚÈý·½ cdn Ìṩ£¬ÄÇô¶ÔÓÚÍøÕ¾¼ÓÔØËÙ¶È»áÓв»Ð¡µÄÌáÉý¡£

²©Ö÷Ñ¡ÓõÄÊÇ bootstrap ÖÐÎÄÕ¾ÌṩµÄ cdn ¾²Ì¬¿â£¬²©Ö÷¿´¹ý²»ÉÙ¹úÄÚ cdn ¾²Ì¬¿â£¬¿ÉÒÔ˵ bootstrap ¼ÒµÄ»¹ÊǺÜÁ¼Ðĵ쬏üм°Ê±£¬×ÊÔ´ÏÖÔÚÒ²ºÜ·á¸»£¬»ù±¾²©Ö÷ÓõÄÈý·½×ÊÔ´¶¼ÄÜÔÚÉÏÃæÕÒµ½£¬ÓÚÊǽÓÏÂÀ´¾ÍÊÇËÑË÷¾²Ì¬×ÊÔ´ + Ìæ»»¾²Ì¬×ÊÔ´£º

<script src="/s/js/jquery.min.js"></script> 

¸ÄΪ

<script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> 

ÕâÀﲻҪдЭÒéÍ·£¬ÈÃÍøÒ³×Ô¶¯ÅжÏʹÓà http »¹ÊÇ https ( ¹ØÓÚ https ÍøÕ¾µÄ²¿Êð¿ÉÒÔ¿´²©Ö÷֮ǰµÄÎÄÕ£º ¸øÄãµÄÍøÕ¾´©ÉÏÍâÒÂ- HTTPS Ãâ·Ñ²¿ÊðÖ¸ÄÏ )

4. ʹÓà cdn ´¢´æ¾²Ì¬×ÊÔ´

Ò»°ãÍøÕ¾ 90% µÄÁ÷Á¿¶¼ÓÃÓÚ¾²Ì¬×ÊÔ´µÄ¼ÓÔØ£¬³ýÁËÓÃÃâ·Ñ cdn ¼ÓÔØµÚÈý·½×ÊÔ´£¬»¹¿ÉÒÔ×Ô¼ºÉêÇëÔÆ¿Õ¼ä´¢´æ×Ô¼ºµÄ¾²Ì¬×ÊÔ´£¬½øÒ»²½¼õС·þÎñÆ÷µÄ¿ªÏú£¬È÷þÎñÆ÷ֻרעÓÚÌṩÊý¾Ý»òÕßÍøÒ³äÖȾ·þÎñ¡£ ±ÈÈ粩Ö÷ʹÓõÄÊÇ XÅ£ £¬½«×Ô¼ºµÄͼƬʲô¶¼´æÔÚ xÅ£ÉÏ£¬Ã¿¸öÔ¶¼ÓÐÃâ·ÑÁ÷Á¿£¬¶ÔÓÚ¸öÈËÍøÕ¾À´ËµÓ¦¸Ã¹»Óá£

5. ºÏ²¢Ñ¹Ëõ js css

³ýÈ¥ÒýÓù«¹²¿â£¬ÍøÒ³Öл¹ÓÐÐí¶à×Ô¼ºÐ´µÄ js Óë css£¬Èç¹ûÎÒÃÇÖ±½Ó°Ñ¿ª·¢»·¾³µÄÎļþÄÃÀ´ÓÃÎÞÒɺÜÀË·ÑÁ÷Á¿£¬Òò´ËÔÚ±àдºÃÍøÒ³²âÊÔÍê±Ïºó£¬ÎÒÃÇÓ¦¸Ã½« css ºÍ js ѹËõºÏ²¢³ÉÒ»¸ö»òÕß¼¸¸öÎļþ£¬ÕâÑù¼È¼õÉÙÁËÇëÇó´ÎÊýÓÖ¼õÉÙÁËÁ÷Á¿ÏûºÄ£¬Ò»¼ýË«µñ¡£ µ±È»»¹ÓÐ html ѹËõ£¬²»¹ý ms Ïֽ׶λ¹ÓÐһЩ¿Ó£¬¾ÍÏȲ»ÓÃÁË¡£ ˵µ½ºÏ²¢Ñ¹Ëõ£¬µÚһʱ¼ä²¥×·¾ÍÏëµ½ÁË webpack £¬Ç°¶Ë¹¤³Ì»¯ÉñÆ÷£¬¼òµ¥ÅäÖÃһϾͿÉÒÔÍêÈ«¸ã¶¨ÈÎÎñ£º

²©Ö÷ÍøÕ¾×Ô¼ºµÄ js ¹¤³ÌÎļþ·ÅÔÚ /webroot/static/src/js/ ÖУ¬¼ÙÈçÎÒÃÇÒª½«Ñ¹ËõºÏ²¢ºóµÄÎļþ·ÅÔÚ /webroot/static/dist/js/ÖУº

ÔÚ /webroot/ ÏÂн¨Îļþ¼Ð webpack, ½øÈëÎļþ¼Ð£¬Ð½¨Îļþ package.json:

{ 
"name": "RaPo3",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "rapospectre",
"license": "ISC",
"devDependencies": {
"css-loader": "^0.24.0",
"style-loader": "^0.13.1",
"webpack": "^1.13.2",
"webpack-dev-server": "^1.15.1"
}

±£´æºóÖ´ÐУº

    npm install 
//»ò
cnpm install
//Èç¹ûÄãÓеϰ

È»ºóн¨ webpack ÅäÖÃÎļþ webpack.config.js:

    var webpack = require('webpack'); 
module.exports = {
entry: {
base: ['../static/js/src/http.js', '../static/js/stickUp.min.js', '../static/js/src/base.js'],
index: ['../static/js/src/index.js'],
detail: ['../static/js/editormd.js', '../static/js/src/article.js'],
know: ['../static/js/editormd.js', '../static/js/src/know.js'],
list: ['../static/js/src/list.js']

},
output: {
path: '../static/js/dist/',
filename: '[name].js'
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
output: {
comments: false
},
compress: {
warnings: true
}
}),
]
}

ÕâÀïҪעÒâµÄÊÇÈç¹ûÄãµÄ js Îļþ¼äµÄÒýÓÃÊÇ´«Í³µÄ html ÒýÈëºóÒýÓÃÄÇôÔÚÕâÀïºÏ²¢Ê±¼ÇµÃ°ÑÄã±»ÒýÓõķ½·¨¶ÔÏóµÈµÈÉèÖÃΪȫ¾Ö£¬±ÈÈç b.js ÒªÒýÓà a.js Öеĺ¯Êý c£¬ºÏ²¢Ç°ÒªÔÚ a.js ÖмÓÉÏ( µ±È»Èç¹ûÄãÒ»Ö±Óà es6/node д js ¾Í²»Óÿ´ÕâÀïÁË )£º

    window.c = c; 
»ò
this.c = c;

²»È» c ¾Í»á±»µ±×÷¾Ö²¿º¯Êý·â×°ÆðÀ´¡£

¸ÄÍêºóÔËÐÐ webpack Ìáʾ³É¹¦ºó¿´µ½ dist Ŀ¼ÀïÒѾ­Êä³öÁ˺ϲ¢Ñ¹ËõºÃµÄÎļþ£¬Ö®Ç° 12kb µÄÎļþ¾­¹ýѹËõºÏ²¢ºóÖ»ÓÐ 6kb ´óС£¬È»ºóÎÒÃǽ«ÆäÌæ»»µ½ÍøÒ³Öм´¿É¡£

6. ´úÂëÓÅ»¯

Ò³Ãæ´úÂëµÄÓÅ»¯¶ÔÓÚÒ³Ãæ¼ÓÔØËÙ¶ÈÒ²Óв»Ð¡µÄÓ°Ï죬×î¹ãΪÈËÖªµÄ£º

HTMLÍ·²¿µÄJavaScriptºÍдÔÚHTML±êÇ©ÖеÄStyle»á×èÈûÒ³ÃæµÄäÖȾ£¬Òò´ËCSS·ÅÔÚÒ³ÃæÍ·²¿²¢Ê¹ÓÃLink·½Ê½ÒýÈ룬JavaScriptµÄÒýÈë·ÅÔÚÒ³ÃæÎ²

Æä´Î»¹ÓУº

1.°´Ðè¼ÓÔØ£¬°Ñͳ¼Æ¡¢·ÖÏíµÈ js ÔÚÒ³Ãæ onload ºóÔÙ½øÐмÓÔØ£¬¿ÉÒÔÌá¸ß·ÃÎÊËÙ¶È;

2.ÓÅ»¯ cookie £¬¼õÉÙ cookie Ìå»ý;

3.±ÜÃâ <img> µÄ src Ϊ¿Õ;

4.¾¡Á¿±ÜÃâÉèÖÃͼƬ´óС£¬¶à´ÎÖØÉèͼƬ´óС»áÒý·¢Í¼Æ¬µÄ¶à´ÎÖØ»æ£¬Ó°ÏìÐÔÄÜ;

5.ºÏÀíʹÓÃdisplayÊôÐÔ£º

    a.display:inlineºó²»Ó¦¸ÃÔÙʹÓÃwidth¡¢height¡¢margin¡¢paddingÒÔ¼°float 

b.display:inline-blockºó²»Ó¦¸ÃÔÙʹÓÃfloat

c.display:blockºó²»Ó¦¸ÃÔÙʹÓÃvertical-align

d.display:table-*ºó²»Ó¦¸ÃÔÙʹÓÃmargin»òÕßfloat

1.²»ÀÄÓÃFloat ºÍ web ×ÖÌå;

2.¾¡Á¿Ê¹ÓÃCSS3¶¯»­;

3.ʹÓà ajax Òì²½¼ÓÔØ²¿·ÖÇëÇó;

7. HTTP2 Óë gzip

HTTP2 ÊÇÒÔ SPDY Ϊ»ù´¡¿ª·¢µÄ¡£ SPDY ϵÁÐЭÒéÓɹȸ迪·¢£¬ÓÚ 2009 Ä깫¿ª¡£ËüµÄÉè¼ÆÄ¿±ê¾ÍÊǽµµÍ 50% µÄÒ³Ãæ¼ÓÔØÊ±¼ä£¬ËùÒÔ HTTP2 Ôںܴó³Ì¶ÈÒ²ÊÇΪÁËÓÅ»¯Ò³Ãæ¼ÓÔØÊ±¼ä£¬Í¬Ê± HTTP2 Ö§³Ö¶à·¸´Ó㬼òµ¥Ëµ¾ÍÊÇËùÓеÄÇëÇó¶¼Í¨¹ýÒ»¸ö TCP Á¬½Ó²¢·¢Íê³É¡£ ¶ø gzip ´ó¼Ò¶¼²»Ä°Éú£¬¾ÍÊÇÒ»ÖÖѹËõÍøÒ³µÄ¼¼Êõ£¬µ±È»Ñ¹ËõÍøÒ³½øÐд«ÊäµÄ´ú¼Û¾ÍÊǸø·þÎñÆ÷Ôö¼ÓһЩѹËõµÄ¸ºµ££¬µ±È»ÕâÖÖÎþÉüÊÇÖµµÃµÄ¡£

ÈçºÎ¿ªÆô HTTP2 Óë gzip? ²©Ö÷µÄÍøÕ¾»ùÓÚ nginx + uWSGI ½øÐзþÎñ£¬Òò´ËÖ»ÒªÔÚ nginx ¿ªÆô HTTP2 Óë gzip ¾ÍºÃ£º

¿ªÆô HTTP2

nginx 1.9.5 Ö®ºó²ÅÖ§³Ö HTTP2 £¬¶øÇÒÐèÒªÅäÖñàÒë²ÎÊý£¬¹ØÓÚ nginx ¿ªÆô HTTP2 ÇëÖ±½ÓÒÆ²½²©Ö÷֮ǰµÄÎÄÕ£º nginx ÅäÖà http2

¿ªÆô gzip

Ö±½Ó´ò¿ª nginx ÅäÖÃÎļþ, ±ÈÈ粩Ö÷µÄÔÚ /etc/nginx/nginx.conf£¬ È»ºó¼ÓÉÏ£º

    server{ 
gzip on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-font-woff;
}

È»ºóÖØÆô nginx ¼´¿É

×îºó£¬ÈÃÎÒÃÇÇå³ý»º´æ£¬Ôٴδò¿ªÍøÕ¾£º

×ܼÓÔØÁ÷Á¿ 527kb £¬Ò³ÃæÍê³É¼ÓÔØÊ±¼ä 1.84s£¬¶Ô±È֮ǰ¼ÓÔØÊ±¼ä 8.18s £¬1.38MB Á÷Á¿£¬ÕûÌåʱ¼äÌáÉýÁË 4 ±¶¶à!ÓÃÊÖ»ú¶Ë·ÃÎʲâÊÔ£¬¼òÖ±¿ìµÄ·ÉÆð£¬²»ÐÅÄãÒ²À´[·ÃÎÊ]1ÊÔÊÔѽ¡«

×îºó£¬¸½Éϱ¾ÎÄÍøÕ¾µÄÔ´ÂëÒÔ¼°Ä¿Â¼½á¹¹£¬¿ÉÒÔͨ¹ý commit ¼Ç¼¸ü¼ÓÖ±¹ÛµÄ¿´µ½ÓÅ»¯µÄ¹ý³Ì£º

https://github.com/bluedazzle...

   
2334 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

¹È¸è½ÌÄãÈçºÎ¹¹½¨Ò»¸öÓÅÐãµÄÒÆ¶¯ÍøÕ¾
ÈçºÎ¸ßЧµØ¹ÜÀíÍøÕ¾¾²Ì¬×ÊÔ´
¸ßÐÔÄÜÍøÕ¾½¨ÉèµÄ×î¼Ñʵ¼ù
Ïл°ÍøÕ¾×ó²àµ¼º½µÄʵÏÖ
 
Ïà¹ØÎĵµ

ÍøÕ¾½¨Éè·½°¸Á÷³Ì
ÍøÕ¾½¨Éècss½Ì³Ì
ÆóÒµÍøÕ¾½¨ÉèÓëÍÆ¹ã
ÍøÕ¾½¨Éè·½°¸Êé
Ïà¹Ø¿Î³Ì

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ê®Ììѧ»áDIV+CSS(WEB±ê×¼)
HTML 5µÄ¸ïУº½á¹¹Ö®ÃÀ
½éÉÜ27¿î¾­µäµÄCSS¿ò¼Ü
35¸öÓд´ÒâµÄ404´íÎóÒ³Ãæ
×îÈÝÒ×·¸µÄ13¸öJavaScript´íÎó
Éè¼ÆÒ×Àí½âºÍ²Ù×÷µÄÍøÕ¾

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
Èí¼þ¿ª·¢¹ý³ÌÖ¸ÄÏ

¶«Èí¼¯ÍÅ ´úÂëÖØ¹¹
ij½ðÈÚÈí¼þ·þÎñÉÌ ¼¼ÊõÎĵµ
Öдïµçͨ Éè¼ÆÄ£Ê½Ô­ÀíÓëʵ¼ù
·¨¹úµçÐÅ ¼¼ÊõÎĵµ±àдÓë¹ÜÀí
Î÷ÃÅ×Ó Ç¶ÈëʽÉè¼ÆÄ£Ê½
ÖÐд󶫷½ÈËÊÙ ¼¼ÊõÎĵµ±àд