|
利用JSON代替XML解决各版本浏览器对DOM支持不同的问题
Ajax中数据传递,大家都已经习惯了“异步JavaScript和XML”,XML是看上去的重要 组成部分,它却不是必须的。另外像下面这样的JavaScript,IE6之前的版本(包括IE6)对其支持的都不是很好,基本上会报找不到对象的错误。假如有一种完全独立于语言的文本格式作为数据交换格式,那么这样的问题也就不存在了,JSON(JavaScript Object Notation)帮我们提供了完美的解决方案,同时也完全取代了Ajax中的XML。
var res = xmlHttpReq.responseXML.getElementsByTagName(”Key“);JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。以JavaScript为例,可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。只要数据符合下面的这样的格式:var myJSONObject = {”bindings“: [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};对于其中的第一行的method,我们可以这样操作:myJSONObject.bindings[0].method // 结果为”newURI”上面提到的eval可以帮我们把字符串转换成为JSON所需要的对象,var myObject = eval(’(’ + myJSONtext + ‘)’);JSON不仅减少了解析XML解析带来的性能问题和兼容性问题,而且对于JavaScript来说使用非常简单。更具体的例子可以参照JSON的主页上,相关的代码可以从那里取到最新版本。
SON的另外一个优势是跨域可行性,例如你在www.minidx.com的网页里使用<scripttype=”text/javascript”src=”http://www.sample.com/some.js”></script>是完全可行的,这就意味着我们可以跨域传递信息。而使用XMLHttpRequest却获取不了跨域的信息,这是JavaScript内部的安全性质所限制的。 |
|