日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实测:xml与json速度约差4倍

發布時間:2025/4/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实测:xml与json速度约差4倍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

xml與json在javascript中解析并使用,速度大約相差4倍。(在IE中測試的結果)。

其中主要不在于eval,與xml parse的時間差別,主要在于屬性訪問上的差別:

xml中使用這樣的方式 markers[i].getAttribute("info")

與json中使用這樣的方式 var info = markers[i].info;

相比, xml要慢不少。

以下為測試的詳情:

?

代碼 <!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&amp;v=2&amp;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?
=?"經緯度?"?+?(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用時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.?&lt;br&gt;?力帆體育場店&lt;br&gt;?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.?&lt;br&gt;?力帆體育場店&lt;br&gt;?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.?&lt;br&gt;?力帆體育場店&lt;br&gt;?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>

?

?

轉載于:https://www.cnblogs.com/dstang2000/archive/2010/11/02/1867406.html

總結

以上是生活随笔為你收集整理的实测:xml与json速度约差4倍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。