JavaScriptÏÖÔÚ¼«ÆäÖØÒª¡£Ò»Ð©ÍøÕ¾Ê¹ÓÃJavaScriptÀ´ÔöÌí÷ÈÁ¦£¬Èç½ñµÄÐí¶àWebÓ¦ÓóÌÐòÒÀÀµËü£¬ÆäÖÐһЩÉõÖÁÊÇÍêÈ«ÓÃJavaScript±àд¶ø³ÉµÄ¡£ÎÒÔÚ±¾ÎÄÖн«Ö¸³öÒ»Ð©ÖØÒªµÄ¹æÔò£¬½éÉÜÈçºÎʹÓÃÄãµÄJavaScript¡¢Ê¹ÓÃÄÄЩ¹¤¾ßÒÔ¼°Ä㽫´ÓÖеõ½Ê²Ã´ºÃ´¦¡£
È·±£´úÂ뾡Á¿¼ò½à
²»ÒªÊ²Ã´¶¼ÒÀÀµJavaScript¡£²»Òª±àÐ´ÖØ¸´ÐԵĽű¾¡£Òª°ÑJavaScriptµ±×÷Ìǹû¹¤¾ß£¬Ö»ÊÇÆðµ½ÃÀ»¯×÷Óᣱð¸øÄãµÄÍøÕ¾Ìí¼Ó´óÁ¿µÄJavaScript´úÂë¡£Ö»ÓбØÒªµÄʱºòÓÃһϡ£Ö»ÓÐȷʵÄܸÄÉÆÓû§ÌåÑéµÄʱºòÓÃһϡ£
¾¡Á¿¼õÉÙDOM·ÃÎÊ
ʹÓÃJavaScript·ÃÎÊDOMÔªËØºÜÈÝÒ×£¬´úÂë¸üÈÝÒ×ÔĶÁ£¬µ«ÊÇËٶȺÜÂý¡£ÏÂÃæ½éÉܼ¸¸öÒªµã£ºÏÞÖÆÊ¹ÓÃJavaScriptÀ´ÐÞÊÎÍøÒ³²¼¾Ö£¬°ÑÕë¶Ô·ÃÎÊÔªËØµÄÒýÓûº´æÆðÀ´¡£ÓÐʱ£¬µ±ÄãµÄÍøÕ¾ÒÀÀµ´óÁ¿µÄDOM¸Ä¶¯Ê±£¬¾ÍÓ¦¸Ã¿¼ÂÇÏÞÖÆÄãµÄ±ê¼Ç¡£ÕâÊǸÄÓÃHTML5¡¢ÉáÆúÄÇЩÔÀ´µÄXHTMLºÍHTML4µÄÒ»¸ö³ä·ÖÀíÓÉ¡£Äã¿ÉÒԲ鿴DOMÔªËØµÄÊýÁ¿£¬Ö»ÒªÔÚFirebug²å¼þµÄ¿ØÖÆÌ¨ÖÐÊäÈ룺document.getElementsByTagName('*').length¡£
ѹËõ´úÂë
ÒªÌṩ¾¹ýѹËõµÄJavaScriptÒ³Ãæ£¬×îÓÐЧµÄ°ì·¨¾ÍÊÇÏÈÓÃJavaScriptѹËõ¹¤¾ß¶ÔÄãµÄ´úÂëѹËõһϣ¬ÕâÖÖѹËõ¹¤¾ß¿ÉÒÔѹËõ±äÁ¿ºÍ²ÎÊýÃû³Æ£¬È»ºóÌṩÒò¶ø»ñµÃµÄ´úÂ룬ʹÓÃÁËgzipѹËõ¡£
Êǵģ¬ÎÒûÓÐѹËõÎÒµÄmain.js£¬µ«ÄãÒª¼ì²éÓÐûÓÐδ¾Ñ¹ËõµÄÈκÎjQuery²å¼þ£¬±ðÍüÁËѹËõ¡£ÏÂÃæ³É¶¼ÍøÕ¾½¨É蹫˾´´Ð»¥ÁªÁгöÁËѹËõ·½ÃæµÄ¼¸¸ö·½°¸¡£
YUIѹËõ¹¤¾ß(ÎÒµÄ×î°®£¬jQuery¿ª·¢ÍŶӾÍʹÓÃËü)£¬³õѧÕßÖ¸ÄÏ(http://www.slideshare.net/nzakas/extreme-JavaScript-compression-with-yui-compressor)¡¢µÚ¶þÖ¸ÄÏ (http://vilimpoc.org/research/js-speedup/)ºÍ¹Ù·½ÍøÕ¾(http://developer.yahoo.com/yui/compressor/)¡£
Dean Edwards Packer(http://dean.edwards.name/packer/)
JSMin(http://crockford.com/JavaScript/jsmin)
GZipѹËõ£ºÆä±³ºóµÄÏë·¨ÊÇ£¬Ëõ¶ÌÔÚä¯ÀÀÆ÷ºÍ·þÎñÆ÷Ö®¼ä´«ËÍÊý¾ÝµÄʱ¼ä¡£Ëõ¶Ìʱ¼äºó£¬ÄãµÃµ½±êÌâÊÇAccept-Encoding: gzip,deflateµÄÒ»¸öÎļþ¡£²»¹ýÕâÖÖѹËõ·½·¨ÓÐһЩȱµã¡£ËüÔÚ·þÎñÆ÷¶ËºÍ¿Í»§¶Ë¶¼ÒªÕ¼Óô¦ÀíÆ÷×ÊÔ´(ÒÔ±ãѹËõºÍ½âѹËõ)£¬»¹ÒªÕ¼ÓôÅÅ̿ռ䡣
±ÜÃâeval()£ºËäÈ»ÓÐʱeval()»áÔÚʱ¼ä·½Ãæ´øÀ´Ò»Ð©Ð§ÂÊ£¬µ«Ê¹ÓÃËü¾ø¶ÔÊÇ´íÎóµÄ×ö·¨¡£eval()µ¼ÖÂÄãµÄ´úÂë¿´ÆðÀ´¸üÔ࣬¶øÇÒ»áÌÓ¹ý´ó¶àÊýѹËõ¹¤¾ßµÄѹËõ¡£
¼Ó¿ìJavaScript×°ÈëËٶȵŤ¾ß£ºLab.js
ÓÐÐí¶à³öÉ«µÄ¹¤¾ß¿ÉÒÔ¼Ó¿ìJavaScript×°ÈëµÄËÙ¶È¡£ÖµµÃÒ»ÌáµÄÒ»¿î¹¤¾ßÊÇLab.js¡£
½èÖúLAB.js(×°ÈëºÍ×èÖ¹JavaScript)£¬Äã¾Í¿ÉÒÔ²¢ÐÐ×°ÈëJavaScriptÎļþ£¬¼Ó¿ì×ܵÄ×°Èë¹ý³Ì¡£´ËÍ⣬Ä㻹¿ÉÒÔΪÐèҪװÈëµÄ½Å±¾ÉèÖÃij¸ö˳Ðò£¬ÄÇÑù¾ÍÄÜÈ·±£ÒÀÀµ¹ØÏµµÄÍêÕûÐÔ¡£´ËÍ⣬¿ª·¢ÕßÉù³ÆÆäÍøÕ¾ÉϵÄËÙ¶ÈÌáÉýÁË2±¶¡£
ʹÓÃÊʵ±µÄCDN
ÏÖÔÚÐí¶àÍøÒ³Ê¹ÓÃÄÚÈÝ·Ö·¢ÍøÂç(CDN)¡£Ëü¿ÉÒԸĽøÄãµÄ»º´æ»úÖÆ£¬ÒòΪÿ¸öÈ˶¼¿ÉÒÔʹÓÃËü¡£Ëü»¹ÄÜΪÄã½ÚʡһЩ´ø¿í¡£ÄãºÜÈÝÒ×ʹÓÃping¼ì²â»òʹÓÃFirebugµ÷ÊÔÄÇЩ·þÎñÆ÷£¬ÒÔ±ã¸ãÇå¿ÉÒÔ´ÓÄÄЩ·½Ãæ¼Ó¿ìÊý¾ÝµÄËÙ¶È¡£Ñ¡ÔñCDNʱ£¬ÒªÕչ˵½ÄãÍøÕ¾ÄÇЩ·Ã¿ÍµÄλÖ᣼ǵþ¡¿ÉÄÜʹÓù«¹²´æ´¢¿â¡£
ÃæÏòjQueryµÄ¼¸¸öCDN·½°¸£º
http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js¡ª¡ª¹È¸èAjax£¬¹ØÓÚ¸ü¶à¿âµÄÐÅÏ¢Çë²ÎÔÄhttp://code.google.com/apis/libraries/devguide.html#Libraries¡£
http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js¡ª¡ªÎ¢ÈíµÄCDN
http://code.jquery.com/jquery-1.4.2.min.js¡ª¡ªEdgecast (mt)¡£
ÍøÒ³Ä©Î²×°ÈëJavaScript
Èç¹ûÄã¹Ø×¢Óû§£¬Óû§Òò»¥ÁªÍøÁ¬½ÓËÙ¶ÈÂý¶øÃ»ÓÐÀ뿪ÄãµÄÍøÒ³£¬ÕâÊÇÒ»¸ö·Ç³£ºÃµÄ×ö·¨¡£Ò×ÓÃÐÔºÍÓû§·ÅÔÚÊ×룬JavaScript·ÅÔÚĩλ¡£ÕâÒ²ÐíºÜÍ´¿à£¬µ«ÊÇÄãÓ¦¸ÃÓÐËù×¼±¸£¬ÓÐЩÓû§»á½ûÓÃJavaScript¡£¿ÉÒÔÔÚÍ·²¿·Ö·ÅÖÃÐèҪװÈëµÄһЩJavaScript£¬µ«ÊÇǰÌáÊÇËüÒÔÒì²½·½Ê½×°Èë¡£
Òì²½×°Èë¸ú×Ù´úÂë
ÕâÒ»µã·Ç³£ÖØÒª¡£ÎÒÃÇ´ó¶àÊýÈËʹÓùȸè·ÖÎö¹¤¾ß(Google Analytics)À´»ñµÃͳ¼ÆÊý¾Ý¡£ÕâºÜºÃ¡£ÏÖÔÚ¿´Ò»ÏÂÄã°ÑÄãµÄ¸ú×Ù´úÂë·ÅÔÚÄÄÀï¡£ÊÇ·ÅÔÚÍ·²¿·Ö?»¹ÊÇ˵ËüʹÓÃdocument.write?È»ºó£¬Èç¹ûÄãûÓÐʹÓùȸè·ÖÎö¹¤¾ßÒì²½¸ú×Ù´úÂ룬ÄÇÒ²Ö»ÄܹÖÄã×Ô¼º¡£
Õâ¾ÍÊǹȸè·ÖÎö¹¤¾ßÒì²½¸ú×Ù´úÂëµÄÑù×Ó¡£ÎÒÃDZØÐë³ÐÈÏ£¬ËüʹÓÃDOM£¬¶ø²»ÊÇʹÓÃdocument.write£¬Õâ¿ÉÄܸüÊʺÏÄã¡£Ëü¿ÉÒÔÔÚÍøÒ³×°Èë֮ǰ¼ì²âµ½ÆäÖÐһЩʼþ£¬Õâ·Ç³£ÖØÒª¡£ÏÖÔÚÏëÒ»ÏëÕâÖÖÇé¿ö£¬ÄãµÄÍøÒ³ÉõÖÁ»¹Ã»ÓÐ×°È룬ËùÓÐÓû§¶¼¹Ø±ÕÁËÍøÒ³¡£ÒÑÕÒµ½Á˽â¾öÒ³Ãæä¯ÀÀÁ¿´íʧµÄ°ì·¨¡£
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-XX']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/JavaScript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +
'.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
ûÓÐʹÓùȸè·ÖÎö¹¤¾ß?Õâ²»ÊÇÎÊÌ⣬½ñÌìµÄ·ÖÎö¹¤¾ßÌṩÉÌ´ó¶àÔÊÐíÄãʹÓÃÒì²½¸ú×Ù¡£
AjaxÓÅ»¯
AjaxÇëÇó¶ÔÄãÍøÕ¾µÄÐÔÄÜÓÐÖØ´óÓ°Ïì¡£ÏÂÃæÎÒ½éÉܹØÓÚAjaxÓÅ»¯µÄ¼¸¸öÒªµã¡£
»º´æÄãµÄajax
ÏÈ¿´Ò»ÏÂÄãµÄ´úÂë¡£ÄãµÄajax¿ÉÒÔ»º´æÂð?Êǵģ¬ËüÒÀÀµÊý¾Ý£¬µ«ÊÇÄãµÄajaxÇëÇó´ó¶àÓ¦¸Ã¿ÉÒÔ»º´æ¡£ÔÚjQueryÖУ¬ÄãµÄÇëÇóÔÚĬÈÏÇé¿öÏÂÒѱ»»º´æ£¬²»°üÀ¨scriptºÍjsonpÊý¾ÝÀàÐÍ¡£
Õë¶ÔAjaxÇëÇóʹÓÃGET
POSTÀàÐÍÇëÇóÒª·¢ËÍÁ½¸öTCPÊý¾Ý°ü(ÏÈ·¢ËͱêÌ⣬Ȼºó·¢ËÍÊý¾Ý)¡£GETÀàÐÍÇëÇóÖ»ÐèÒª·¢ËÍÒ»¸öÊý¾Ý°ü(Õâ¿ÉÄÜÈ¡¾öÓÚÄãµÄcookieÊýÁ¿)¡£ËùÒÔ£¬µ±ÄãµÄURL³¤¶È²»µ½2K£¬ÄãÓÖÏëÇëÇóһЩÊý¾Ýʱ£¬²»·ÁʹÓÃGET¡£
ʹÓÃySlow
˵µ½ÐÔÄÜ£¬ySlow¼È¼òµ¥£¬ÓÖ¼«ÆäÓÐЧ¡£Ëü¿ÉÒÔ¶ÔÄãµÄÍøÕ¾½øÐÐÆÀ·Ö£¬ÏÔʾÄÄЩ·½ÃæÐèÒª¸ÄÕý£¬ÒÔ¼°Ó¦¹Ø×¢ÄÄЩ·½Ãæ¡£
ÁíÍâÖ§Ò»ÕУº°ÑÄãµÄJavaScript´ò°ü³ÉPNGÎļþ
ÉèÏëһϣº°ÑÄãµÄJSºÍCSSÌí¼Óµ½Í¼Æ¬µÄĩβ£¬È»ºóÓÃCSSÀ´²ÃÇУ¬Í¨¹ýÒ»´ÎHTTPÇëÇóÀ´»ñµÃÓ¦ÓóÌÐòÖÐËùÐèµÄËùÓÐÐÅÏ¢¡£
ÎÒ×î½üÕÒµ½ÁËÕâ¸ö·½·¨¡£Ëü»ù±¾ÉϰÑÄãµÄJavaScript/cssÊý¾Ý´ò°ü³ÉPNGÎļþ¡£Ö®ºó£¬Äã¿ÉÒÔ²ð°ü£¬Ö»ÒªÊ¹Óû²¼APIµÄgetImageData()¡£´ËÍ⣬Ëü·Ç³£¸ßЧ¡£Äã¿ÉÒÔÔÚ²»ËõСÊý¾ÝµÄÇé¿öÏ£¬¶àѹËõ35%×óÓÒ¡£¶øÇÒÊÇÎÞËðѹËõ!ÎÒµÃÖ¸³ö£¬¶Ô±È½ÏÅÓ´óµÄ½Å±¾À´Ëµ£¬ÔÚͼƬָÏò»²¼¡¢¶ÁÈ¡ÏñËØµÄ¹ý³ÌÖУ¬Äã»á¾õµÃÓС°Ò»¶Î
ÓªÏúÐÍÍøÕ¾½¨Éè¿ÉÒÔ¸øÆóÒµ´øÀ´ÄÄЩºÃ´¦ :ÉÏһƪ
Ê²Ã´ÍøÕ¾ËãºÃÕ¾? :ÏÂһƪ