WEB开发网
开发学院网页设计JavaScript JavaScript解析Json字符串的性能比较 阅读

JavaScript解析Json字符串的性能比较

 2010-09-14 13:43:29 来源:WEB开发网   
核心提示:我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,JavaScript解析Json字符串的性能比较,然后在客户端把它解析成JavaScript对象,解析时用到的方法一般是eval或者new function,而目前IE8和Firefox3.1又内置了原生的JSON对象(据说

我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,然后在客户端把它解析成JavaScript对象。解析时用到的方法一般是eval或者new function,而目前IE8和Firefox3.1又内置了原生的JSON对象(据说会有一定的性能提升)。那我们在实际使用的时候怎样从这三种方法(因为性能问题,不考虑用javascript实现的解析)里面来选择呢?面对众多的浏览器,哪种方式的性能是最好的呢?

一、测试方法

1、首先指定测试次数及JSON字符串

  1: var count = 10000, o = null, i = 0, jsonString = '{"value":{"items": [{"x":1,"y":2,"z":3}, {"x":1,"y":2,"z":3}, {"x":1,"y":2,"z":3}, {"x":1,"y":2,"z":3}, {"x":1,"y":2,"z":3}]},"error":null}';

2、循环解析并记录时间

eval

  1: var beginTime = new Date();

  2: for ( i = 0; i < count; i++ ) {

  3:   o = eval( "(" + jsonString + ")" );

  4: }

  5: Console.output( "eval:" + ( new Date() - beginTime ) );

new Function

  1: var beginTime = new Date();

  2: for ( i = 0; i < count; i++ ) {

  3:   o = new Function( "return " + jsonString )();

  4: }

  5: Console.output( "new Function:" + ( new Date() - beginTime ) );

1 2 3 4  下一页

Tags:JavaScript 解析 Json

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接