为什么xml到json的转换如此之慢?

时间:2013-12-03 10:54:47

标签: xml json angularjs

我目前正在尝试提高我网站的性能,但我使用的XML2JSON库正在减慢流程并阻止网站。

Globaly我正在使用AngularJS从一个tird party php脚本中获取xml:

$http.get('script.php', { params: { param1: $scope.param1, param2: $scope.param2 } }).
success(function(data, status) {
    $scope.results = x2js.xml_str2json(data);
});

GET操作大约需要30ms,所以我猜阻塞的东西必须是x2js对象。 http://code.google.com/p/x2js/

- 编辑:@ Brian Genisio

GET实际上需要大约30毫秒(在超时的情况下最多1秒),如Firebug所示。 字符串有点大(~3kb),X2JS的特殊之处在于它创建了一个巨大的json对象,因为它自动创建一个简单的字段和一个XML条目的数组:

<xml>
    <test>lol</test>
</xml>

将导致:

json: {
    test: lol,
    test_asArray: {
        lol
    }
}

现在是的,我确实控制了php脚本,但是没有,我无法直接获取json中的数据:我正在调用的脚本正在调用服务器,它没有JSON api。< / p>

-

知道为什么这么慢?

1 个答案:

答案 0 :(得分:0)

Brian Genisio说:

  

您可以使用JSON和XML返回数据以避免客户端转换吗?

Aaaand实际上更好:

您可以将要强制放置的xml元素定义为数组:

// PHP $array = xmlToArray($xml, array( 'alwaysArray' => array('Element1', 'Element2')) ); echo json_encode($arrayData);