[·Òë]High Performance JavaScript(023)
Data Formats Êý¾Ý¸ñʽ
When considering data transmission techniques, you must take into account several factors: feature set, compatibility, performance, and direction (to or from the server). When considering data formats, the only scale you need for comparison is speed.
ÔÚ¿¼ÂÇÊý¾Ý´«Êä¼¼Êõʱ£¬Äã±ØÐ뿼ÂÇÕâЩÒòËØ£º¹¦Äܼ¯£¬¼æÈÝÐÔ£¬ÐÔÄÜ£¬ºÍ·½Ïò£¨·¢¸ø·þÎñÆ÷»òÕß´Ó·þÎñÆ÷½ÓÊÕ£©¡£ÔÚ¿¼ÂÇÊý¾Ý¸ñʽʱ£¬Î¨Ò»ÐèÒª±È½ÏµÄ³ß¶ÈµÄ¾ÍÊÇËÙ¶È¡£
There isn't one data format that will always be better than the others. Depending on what data is being transferred and its intended use on the page, one might be faster to download, while another might be faster to parse. In this section, we create a widget for searching among users and implement it using each of the four major categories of data formats. This will require us to format a list of users on the server, pass it back to the browser, parse that list into a native JavaScript data structure, and search it for a given string. Each of the data formats will be compared based on the file size of the list, the speed of parsing it, and the ease with which it's formed on the server.
ûÓÐÄÄÖÖÊý¾Ý¸ñʽ»áʼÖÕ±ÈÆäËû¸ñʽ¸üºÃ¡£¸ù¾Ý´«ËÍʲôÊý¾Ý¡¢ÓÃÓÚÒ³ÃæÉÏʲôĿµÄ£¬Ä³ÖÖ¸ñʽ¿ÉÄÜÏÂÔØ¸ü¿ì£¬ÁíÒ»ÖÖ¸ñʽ¿ÉÄܽâÎö¸ü¿ì¡£ÔÚ±¾½ÚÖУ¬ÎÒÃÇ´´½¨ÁËÒ»¸ö´°¿ÚС²¿¼þÓÃÓÚËÑË÷Óû§ÐÅÏ¢²¢ÓÃËÄÖÖÖ÷Á÷µÄÊý¾Ý¸ñʽʵÏÖËü¡£ÕâÒªÇóÎÒÃÇÔÚ·þÎñÆ÷¶Ë¸ñʽ»¯Ò»¸öÓû§ÁÐ±í£¬½«Ëü·µ»Ø¸øä¯ÀÀÆ÷£¬½«Áбí½âÎö³ÉJavaScriptÊý¾Ý¸ñʽ£¬²¢ËÑË÷ÌØ¶¨µÄ×Ö·û´®¡£Ã¿ÖÖÊý¾Ý¸ñʽ½«±È½ÏÁбíµÄÎļþ´óС£¬½âÎöËÙ¶È£¬ºÍ·þÎñÆ÷ÉϹ¹ÔìËüÃǵÄÄÑÒ׳̶ȡ£
XML
When Ajax first became popular, XML was the data format of choice. It had many things going for it: extreme interoperability (with excellent support on both the server side and the client side), strict formatting, and easy validation. JSON hadn't been formalized yet as an interchange format, and almost every language used on servers had a library available for working with XML.
&
Ïà¹ØÎĵµ£º
ÍæPHP¡¢Delphi¡¢Java»ù±¾É϶¼ÓжÔÏó£¬Ï°¹ßÕâÖÖ˼·ºóÉÏÊÖÈκÎÓïÑÔ¶¼Ïë¿¿OO˼·£¬Õâ¾ø²»ÊÇÔÚ¸Ïʱ÷Ö£¬¶øÊǰÑÏà¹Ø´úÂë½øÐÐÄÚ¾ÛµÄÈ·¿ÉÒÔÌå»áµ½Î¬»¤µÄ·½±ã£¡
ÔÚJavaScriptÖÐÈçºÎ´´½¨¶ÔÏó£¿
JavaScriptÊÇ»ùÓÚ¶ÔÏóµÄ£¡ËüÒ²ÊÇÒÔObjectΪ¸ùÀ࣬ÆäËüÀà¼Ì³ÐÖ®¡£ÔÚ¸ùÀàÌṩÁ˼¸¸ö·½·¨¡£¹©¼Ì³ÐÀàʹÓã¡
ÒÔÏÂÊÇ´´½¨¶ÔÏóµÄÀý×Ó£º
funct ......
typeof ÊÇJavaScriptµÄÔËËã·û
——·µ»ØÒ»¸öÓÃÀ´±íʾ±í´ïʽµÄÊý¾ÝÀàÐ͵Ä×Ö·û´®
typeof[(] expression [)] //typeofÓï·¨ÖеÄÔ²À¨ºÅÊÇ¿ÉÑ¡Ïî
typeof ÔËËã·û@import url(../html-vss/msdnie4a.css);
typeof
ÔËËã·û°ÑÀàÐÍÐÅÏ¢µ±×÷×Ö·û´®·µ»Ø¡£typeof
·µ»ØÖµÓÐÁ ......
µÚËÄÕ Algorithms and Flow Control Ëã·¨ºÍÁ÷³Ì¿ØÖÆ
The overall structure of your code is one of the main determinants as to how fast it will execute. Having a very small amount of code doesn't necessarily mean that it will run quickly, and having a large amount of code ......
Conditionals Ìõ¼þ±í´ïʽ
Similar in nature to loops, conditionals determine how execution flows through JavaScript. The traditional argument of whether to use if-else statements or a switch statement applies to JavaScript just as it does to other languages. Since different b ......
A Note on Benchmarking ²âÊÔ»ù׼˵Ã÷
Because a regex's performance can be wildly different depending on the text it's applied to, there's no straightforward way to benchmark regexes against each other. For the best result, you need to benchmark your regexes on test strings o ......