我听到关于DOM的所有这些不好的事情。不要使用Activex对象,XmlDom,或者它是“dom”..哦,上帝你在使用DOM?这种用法直截了当。
但是我们一直使用document.GetElementbyId和......名字..
那么在调用这些方法时我实际使用的是什么?这是浏览器的用途......
我工作的公司让我们远离活跃的x dom对象使用,但这不是我们正在使用的东西吗?
答案 0 :(得分:3)
您需要区分HTML DOM和XML DOM,然后再在浏览器内部和外部使用XML DOM。虽然XML DOM确实具有大型文档的大量内存占用,但MSXML6 DOM非常快。 XSLT转换,但XPath查询可以按定义查询整个文档,所以我认为使用流接口并不容易。 在浏览器中,您可以在JavaScript中操作HTML DOM。您当然可以使用Flash或Silverlight进入RIA空间,但这也需要ActiveX控件。 我推荐使用jonelf提出的jQuery,并尽可能多地使用CSS来实现UI效果。
答案 1 :(得分:0)
XmlDom本身并没有什么问题,但除了最小的XML文档之外,其他任何东西的性能都很差。在引擎盖下,没有太多(任何)代码会使用它。将Xml文档视为流更有效,然后一次一点地处理它,这就是浏览器正在做的事情。
DOM缓慢的原因之一是它在开始时加载整个文档,即使您只是在寻找第一个标记 - uuggh。我有一种感觉与XSLT引擎的实现方式有关 - 很难将Xsl应用于流并使一切正常工作。
答案 2 :(得分:0)
IE使用的窗帘是我不知道的,但它也可能是GetElementById最终使用某个组件。将JScript ActiveX方式抛在后面仍然不是一个坏主意,因为它已被弃用且仅限JScript。
我想说的是你不应该担心查询DOM。整个AJAX范例都是基于此。
我还建议使用Prototype或jQuery。
$('comments')
比
更好document.GetElementById('comments')
答案 3 :(得分:0)
如果你想坐下来观看视频,可以通过道格拉斯·克罗克福德的Yahoo's YUI Theater进行谈话 - “An Inconvenient API: The Theory of the DOM”。
所有关于DOM的78分钟!