json+xml+xsl应用

使用ajax来处理页面,就需要为传输的数据选定格式.json和xml相比,json传输的数据要小的多,而以xml传输会带有多余标签的消耗.

但浏览器似乎有非常支持xml转化(xsl),而json貌似只有第几方的jst.

由于jst使用的是javascript编写的,使用起来,其效率,似乎也应该比浏览器的xsl低(纯属自己猜想)

 

于是呼,我想还是用xsl,试着先把json转化为xml.

 

IE下jsonobj:

function JsonObj(obj) { switch(typeof(obj)) { case 'string': this.string = obj; this.obj = null; this.xml=null; break; case 'object': this.obj = obj; this.string=null; this.xml=null; break; default: this.obj = null; this.string=null; this.xml=null; return } this.jsonToString=function(obj){ var THIS = this; switch(typeof(obj)){ case 'string': return '"' + obj.replace(/(["//])/g, '//$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': if(obj instanceof Array){ var strArr = []; var len = obj.length; for(var i=0; i

 

jsonToString方法来自网络高人,小弟借来用用,图个方便.json的固定格式,应该都能从toxml中看出10之8,9来.我就不多介绍了

 

这样,还是有问题.在ToXML中,有了3层嵌套循环.目前为止我还在苦思优化的方法.或者有更好在浏览器解析数据的方法

 

IE下xsl:

function XSLT(src) { this.src = src this.date = null this.Serializer=function(xmldate){ if(xmldate==null) return null var xsltDoc = new ActiveXObject("Microsoft.XMLDOM"); xsltDoc.async = false; if(this.date==null) { xsltDoc.load(this.src); this.date =xsltDoc.xml; } else xsltDoc.loadXML(this.date) var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(xmldate); return xmlDoc.transformNode(xsltDoc); } }

 

xsl只在第一次解析xml的时候,从服务端获取文件数据并缓存,之后都直接使用缓存.

 

 

欢迎各位多多提点,小弟初窥门径.仍希望给狼尾巴上团火,能赛过奔驰

你可能感兴趣的:(Web类)