ajax技术中一个重要的规范是最后的x–XML。ajax中数据的传递采用xml格式,这样在javascript中,可以采用DOM技术来遍历传递的过来的数据,当然如果传递的仅仅是简单的无结构的字符串,那么采用responseText当作简单文本就好了。
XML无疑是负责的,如果采用XSLT翻译XML到html,还算比较容易,但是如果采用javascript的DOM翻译,那么很容易迷失在儿子孙子兄弟节点的海洋中。 另外,采用XML传递数据,对服务器段的脚本的编写就要严格的多。而且发出的头文件必须是text/xml的,这点在我的编程经验中,有时候比较比较麻烦,我有的时候页面渲染和ajax服务端脚本在一个文件中,这样原来,开始发出的内容编码格式是html的,而后又需要xml格式,于是会出现典型的”头文件已经发出……“的警告。 今天我就遇到了这个问题,没有办法传递XML数据过去,但是又必须是有结构的数据,当初单纯的字符串肯定不行。 此时我想到了很早以前看到的JSON了,以前看到过,但是因为还没有到必须使用的程序,因此我一直没有使用。 json其实是为数据传递定义的一种格式,他采取对象的模式,它主要利用了javascript中的这样一个特征: 脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。
他的目的是替换ajax的x,也就是采取JSON格式传递数据。 网络上有很多人谈到JSON时,都使用类似”JSON替代XML“的标题。对此,我并不这么认为,即便是在AJAX这方面。
首先XML已经获得了广泛的支持,是未来的数据传递标准,而且现在很多文档保存方式都采取了XML格式,如果XSL-FO获得广泛支持的话,XML无疑会获得更大的提升。
其次,在web开发中,数据库几乎是必须的,而当前绝大部分数据库支持数据到XML格式的直接输出,这无疑减少了开发语言中必要的转换。
另外,WEB开发语言中,大部分支持对xml文档的支持,而JSON目前还没有看到这个前景,虽然PHP在他的5.2.0版本中已经嵌入了对JSON的支持,但是目前部署PHP 5.2.0版本的服务器应该还是少数。
当然,其实就从数据传递而言,你完全可以采用自定义格式。实际上,我们应该选择哪个更符合自己的需求,而不应该一味的追求新概念或者新技术。
所以,我觉得JSON不太可能在AJAX中替代XML。顶多算是一个补充吧。