实测:xml与json速度约差4倍
生活随笔
收集整理的這篇文章主要介紹了
实测:xml与json速度约差4倍
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
xml與json在javascript中解析并使用,速度大約相差4倍。(在IE中測(cè)試的結(jié)果)。
其中主要不在于eval,與xml parse的時(shí)間差別,主要在于屬性訪問(wèn)上的差別:
xml中使用這樣的方式 markers[i].getAttribute("info")
與json中使用這樣的方式 var info = markers[i].info;
相比, xml要慢不少。
以下為測(cè)試的詳情:
?
代碼 <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Strict//EN"????"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml"?xmlns:v="urn:schemas-microsoft-com:vml">
??<head>
????<meta?http-equiv="content-type"?content="text/html;?charset=utf-8"/>
????<title>Google?Maps?JavaScript?API?Example:?Simple?Map</title>
????<script?src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
????????????type="text/javascript"></script>
????
????<script?type="text/javascript">
//全局變量
var?map?=?null;
function?initialize()?{
????if?(!GBrowserIsCompatible())?return;
????map?=?new?GMap2(document.getElementById("map_canvas"));
????map.addMapType(?G_PHYSICAL_MAP?);
????map.addMapType(G_SATELLITE_3D_MAP);
????map.setCenter(new?GLatLng(39.9,?116.00),?6);
????map.addControl(?new?GMapTypeControl()?);
????map.addControl(?new?GLargeMapControl()?);
????map.enableContinuousZoom();
????GEvent.addListener(map,?"mousemove",?function(p){
????????if(!p)return;?
????????window.status?=?"經(jīng)緯度?"?+?(Math.round(p.lng()*100000)/?100000)+?",?"?
????????????+?(Math.round(p.lat()*100000)/?100000);
????});
????var?t0?=?new?Date();
????for(var?i=0;?i<100;?i++?){
????????var?home_point?=?new?GLatLng(37.056136+i/1e4,114.457626+i/1e4);??
????????map.addOverlay(new?GMarker(home_point));?
????}
????var?t1?=?new?Date();
????alert(t1-t0);?//1000用時(shí)6.3秒
????testSpeed();
}
function?testSpeed()
{
//-----------------------------------
????var?ary?=[];
????for(var?i=0;?i<10000;?i++?){
????????ary.push('<marker?msid="13615532361"?lng="104.0447"?lat="30.684"?status="0"?info="川A7G222.?<br>?力帆體育場(chǎng)店<br>?2010-10-27?12:54:39?"?/>');
????}
????var?doc?=?"<current>"?+?ary.join("")?+?"</current>";
????var?t0?=?new?Date();
????
????????var?xmlDoc?=?GXml.parse(doc);
????????if(?!?xmlDoc?||?!?xmlDoc.documentElement)?return;
????????var?markers?=?xmlDoc.documentElement.getElementsByTagName("marker");
????????for?(var?i?=?0;?i?<?markers.length;?i++)?{
??????????var?lat?=?parseFloat(markers[i].getAttribute("lat"));
??????????var?lng?=?parseFloat(markers[i].getAttribute("lng"));
???????????var?msid?=?markers[i].getAttribute("msid");
??????????var?status?=?markers[i].getAttribute("status");
??????????var?info?=?markers[i].getAttribute("info");
????????}
????var?t1?=?new?Date();
????alert(t1-t0);?//0.57秒
//-----------------------------------
????var?ary?=[];
????for(var?i=0;?i<10000;?i++?){
????????ary.push('["13615532361",104.0447,30.684,0,"川A7G222.?<br>?力帆體育場(chǎng)店<br>?2010-10-27?12:54:39"]');
????}
????var?doc?=?"["?+?ary.join(",")?+?"]";
????var?t0?=?new?Date();
????
????????var?markers?=?eval(doc);
????????for?(var?i?=?0;?i?<?markers.length;?i++)?{
??????????var?lat?=?parseFloat(markers[i][1]);
??????????var?lng?=?parseFloat(markers[i][2]);
??????????var?msid?=?markers[i][0];
??????????var?status?=?markers[i][3];
??????????var?info?=?markers[i][4];
????????}
????var?t1?=?new?Date();
????alert(t1-t0);?//0.15秒
//-----------------------------------
????var?ary?=[];
????for(var?i=0;?i<10000;?i++?){
????????ary.push('{msid:"13615532361",lng:104.0447,lat:30.684,status:0,info:"川A7G222.?<br>?力帆體育場(chǎng)店<br>?2010-10-27?12:54:39"}');
????}
????var?doc?=?"["?+?ary.join(",")?+?"]";
????var?t0?=?new?Date();
????????var?markers?=?eval(doc);
????????for?(var?i?=?0;?i?<?markers.length;?i++)?{
??????????//?obtain?the?attribues?of?each?marker
??????????var?lat?=?parseFloat(markers[i].lat);
??????????var?lng?=?parseFloat(markers[i].lng);
??????????var?msid?=?markers[i].msid;
??????????var?status?=?markers[i].status;
??????????var?info?=?markers[i].info;
????????}
????var?t1?=?new?Date();
????alert(t1-t0);?//0.15秒
}
????</script>
??</head>
??<body?onload="initialize()"?onunload="GUnload()">
????
????<div?id="map_canvas"?style="width:?800px;?height:?600px"></div>
??</body>
</html>
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/dstang2000/archive/2010/11/02/1867406.html
總結(jié)
以上是生活随笔為你收集整理的实测:xml与json速度约差4倍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 天气小工具新增风格-默认无背景,感谢欧阳
- 下一篇: 什么是全角和半角?