Agile
-
prototype json 之间奇怪的关系
2007-02-04
本周休假回来之后离开了VC,又走近了Java,真亲切,呵呵。
昨天做公司一个活儿的前端页面的时候根据同事的建议使用了Prototype。
现在流行Ajax,页面要是不停的刷新,都不好意思给人家看。唉,逼得人没法子了。以前在做幻灯的时候也用了Prototype,不过已经过去半年多了,具体的用法也忘记得差不多了,只记得我当时都返回XML数据,自己写了个简单的XML解析函数,费了好大劲儿。
这回我决定使用JSON,目的只有一个--偷懒,不用再解析XML才能得到数据。Prototype支持JSON(在http header中增加一个X-JSON就行了,Prototype自动会把json对象返回给调用函数)。当我完成一个实作之后,就是觉得这也太好用了,向作者致敬。开始在项目中实现功能,发现了一个对我们中国人来说致命的问题,对json返回的中文解析时会出错,无法正确的得到一个json对象,甚至还会报出[Object Error]错误。很奇怪Prototype为什么要采用在Header中增加自定义的X-JSON来实现此功能,IE中Header的长度是有限制的,当数据量比较大时,难免会出问题。
所以,还是把JSON String写到HTTP body中,自己手工再执行一下,以获取json object。
如果要在Header中实现,为了避免无法解析,必须在增加header之前转码,我试了一下,对IE,直接把String 由GBK编码转成ISO8856-1就可以了,在Prototype中,可以正常解析json,但此时FireFox中却是乱码了,难道要在服务器端根据浏览器的类型进行适配?
X-JSON Header 是个好想法,不过实现起来比直接在http body中返回json object复杂,简单就是美,呵呵。
推荐一本讲Groovy的书《Groovy In Action》,为数不多的讲解Groovy的书,正在努力攻读,争取春节后就把它看完。
随机文章:
用groovy shell从sogou音乐盒下载专辑(2) 2007-08-27Groovy字符串操作 2008-02-14Groovy实现的字符串逻辑运算DSL 2007-12-31Why is Groovy so slow? 2007-12-27Groovy 1.5发布 2007-12-08
收藏到:Del.icio.us






