gem*_*rix 54 javascript xml json
我正在创建一个复杂的JavaScript库,用于处理我公司的服务器端框架.
服务器端框架将其数据编码为简单的XML格式.没有花哨的名字空间或类似的东西.
理想情况下,我想将浏览器中的所有数据解析为JSON.但是,如果我这样做,我需要重写一些服务器端代码以吐出JSON.这是一个痛苦,因为我们有公共API,我不能轻易改变.
我真正关心的是在解析JSON与XML的浏览器中的性能.关注真的有很大的不同吗?或者我应该专门去寻找JSON?有没有人在两者之间的性能差异方面有任何经验或基准?
我意识到大多数现代Web开发人员可能会选择JSON,我可以理解为什么.但是,我真的只对表现感兴趣.如果已经证明存在巨大差异,那么我准备花费额外的精力为客户端生成JSON服务器端.
tre*_*ace 31
JSON应该更快,因为它是JS Object Notation,这意味着它可以被JavaScript本地识别.在GET方面的PHP中,我经常会这样做:
<script type="text/javascript">
var data = <?php json_encode($data)?>;
</script>
Run Code Online (Sandbox Code Playgroud)
有关这方面的更多信息,请参见此处:
为什么Everyone为jQuery选择JSON Over XML?
另外......你真正需要在"生成"JSON中加入什么"额外的努力"?当然你不能说你将手动构建JSON字符串?几乎每种现代服务器端语言都有将原始变量转换为JSON字符串的库.例如,PHP的核心json_encode函数转换一个关联数组,如下所示:
$data = array('test'=>'val', 'foo'=>'bar');
Run Code Online (Sandbox Code Playgroud)
成
{"test": "val", "foo": "bar"}
Run Code Online (Sandbox Code Playgroud)
这只是一个JavaScript对象(因为在JS中没有关联数组(严格来说)).
gem*_*rix 19
首先,我要感谢所有回答我问题的人.我真的很感谢你的所有回复.
关于这个问题,我通过运行一些基准进行了一些进一步的研究.解析发生在浏览器中.IE 8是唯一没有本机JSON解析器的浏览器.XML与JSON版本的数据相同.
Chrome(版本8.0.552.224),JSON:92ms,XML:90ms
Firefox(版本3.6.13),JSON:65ms,XML:129ms
IE(版本8.0.6001.18702),JSON:172ms,XML:125ms
有趣的是,Chrome似乎具有几乎相同的速度.请注意,这是解析大量数据.由于数据片段不多,这可能不是什么大问题.
基准已经完成. 这是一个.一些早期浏览器的差异似乎是整个数量级(大约10毫秒而不是100毫秒),但不是很大.部分原因在于服务器响应时间 - XML作为数据格式更为庞大.部分原因是解析时间--JSON允许您发送JavaScript对象,而XML需要解析文档.
您可以考虑向您的公共API添加一个方法来返回JSON,而不是修改现有函数,如果它成为和发布,除非您不想公开JSON.
另请参阅SO问题何时优先使用JSON而不是XML?
| 归档时间: |
|
| 查看次数: |
42771 次 |
| 最近记录: |