XML-DOM与Javascript中的对象
我最近编写了一些代码,获取了一个XMLDOM对象,并以Javascript返回了一个对象。在与同事交谈后,我怀疑这是否值得一试 你们当中有人知道有任何研究或文章讨论使用这两种方法的利弊吗 示例: 我的代码将采用如下结构的XML DOM对象(代码因NDA而更改): 我这样做的三个主要原因是:XML-DOM与Javascript中的对象,javascript,dom,object,Javascript,Dom,Object,我最近编写了一些代码,获取了一个XMLDOM对象,并以Javascript返回了一个对象。在与同事交谈后,我怀疑这是否值得一试 你们当中有人知道有任何研究或文章讨论使用这两种方法的利弊吗 示例: 我的代码将采用如下结构的XML DOM对象(代码因NDA而更改): 我这样做的三个主要原因是: 代码更具可读性。(使用对象,我可以使用点符号访问值) 我一直认为使用对象比使用DOM快 我的问题是: 你们当中有人知道有任何研究或文章讨论使用这两种方法的利弊吗?我是否偏离了我的假设?在我看来,使用JavaS
你们当中有人知道有任何研究或文章讨论使用这两种方法的利弊吗?我是否偏离了我的假设?在我看来,使用JavaScript版本要好得多,因为Xml版本不是标准的HTML。虽然浏览器是宽容的,并且可能允许您拥有一个“xml数据岛”(MSXML3),但我还是坚持使用JavaScript对象
此外,即使它是一个“DOM”元素,它还没有被完全解析。。。根据的规定,在XML实际可用之前,您仍然必须使用DOM解析器来检测和解析XML。以下是我对它的看法 优点: 1) 这些代码对未来的程序员来说更具可读性
var name = xml.selectSingleNode("myObject/myChild")[4].getAttribute("name");
//vs
var name = myObject.children[4].name
2) 您获得了intellisense(假设您使用的是支持intellisense for javascript的IDE)
3) 您可以完全定义xml中哪些内容可用,哪些不可用(它可能包含一堆您不想永远保留的垃圾)
4) 如果您必须修改这些值并进行操作,那么您将不得不承担一次xml检查的开销。最好只做一次
缺点:
1) 创建一个新对象有一个开销。这可能很小,也可能不小,这取决于XML的大小,以及是否要命中解析出的每个元素/属性
2) Occam的Razor(最简单的解决方案是只使用您获得的格式的数据,而不是添加更多的逻辑来解析数据)
3) 可维护性。这假设您可以控制返回的XML结构。如果您这样做了,您将必须维护XML的创建,并确保JSON更新为匹配。(如果写得好,这可以最小化)
注释
如果我在自己的时间写一些东西,我会使用JSON,因为我不喜欢在javascript中处理XML,预先将其解析为JSON将允许我最小化XML在代码中出现的位置。这两种方法都有一些优点,因此,这实际上归结为您(或您的主管)必须对性能和可读性做出判断。这是一个很好的观点。如果我有时间,我可以试着做一些测试,看看是否有很大的性能差异。
{
id: "123",
anotherAttr: "hello",
customAttr: "foo",
children: [
{name: "child1", foo: "bar"},
{name: "child2", foo: "bar"},
{name: "child3", foo: "bar"}
]
}
var name = xml.selectSingleNode("myObject/myChild")[4].getAttribute("name");
//vs
var name = myObject.children[4].name