读书人

关于JSON数据传输效率的一点看法

发布时间: 2012-04-07 17:31:50 作者: rapoo

关于JSON数据传输效率的一点看法 - Web 开发 / Ajax
通过JSON返回的服务器数据的一般表现形式:
{ records:3,
page:1,
pagesize:20,
searchstr:"J",
datas:[
{sid:"41",sname:"Jacky",score:"79"},
{sid:"46",sname:"Jannie",score:"90"},
{sid:"87",sname:"Johnson",score:"56"}]
}

这个形式有个好处,调用数据可以直接引用字段名,但是有个缺陷就是明显浪费带宽,因为储存了大量的重复字段名称。

因此认为可以改进:

{ records:3,
page:1,
pagesize:20,
searchstr:"J",
fields:["sid","sname","score"]
datas:[
["41","Jacky","79"],
["46","Jannie","90"],
["87","Johnson","56"]]
}


各位认为哪种方法比较好?


[解决办法]
我个人还是支持上面的写法。这样取值是超级无敌方便的了。
这个比起用XML来传输数据并解析数据,已经节约很多很多的带宽了。
我们做项目时候,并不是要求选择带宽占用最小的,而是选择解析速率最高的,最合适的方法。
[解决办法]
如果你的数据量特别大的话,我是比较赞同第二种写法的。你只需要写一个WRAPPER通过KEY来取VALUE就可以了。

[解决办法]

CSS code
第一种显示字段名称,字段多就浪费带宽。但是在字段多的时候 可读性 就比较强了。第二种相反,字段多的时候可读性很差的,你知道在字段多的时候,数组中对应的字段是哪个吗?所以要看情况,而定!!!
[解决办法]
探讨

就经常的应用而言,都是把JSON的信息直接输出成table进行显示,基本不会用到什么调用,所以还是第二种情况值得采用,节省流量约30~40%,以返回记录数100条,字段20个,每个字段节省10个字节来算,原来需要传递60K,现只需要传递40K

[解决办法]
探讨

引用:

就经常的应用而言,都是把JSON的信息直接输出成table进行显示,基本不会用到什么调用,所以还是第二种情况值得采用,节省流量约30~40%,以返回记录数100条,字段20个,每个字段节省10个字节来算,原来需要传递60K,现只需要传递40K

我支持第一种的,结构优良,维护成本低。

每次传输json也就几K。。。达到几十K的可能性比较小。……

[解决办法]
探讨

引用:

如果为了节省这数据,全部用数组传输不是更好?[3,1,20,[],[[],[]]]

[解决办法]
if 字段多,数据量大
return 方法二
else
if 提取和维护方便
return 方法一 or json
else
return 数组

视情况而定吧,但这是应该思考的

读书人网 >Ajax

热点推荐