| 风信Java论坛 ›› javascript/html/css 讨论交流中心 ›› DOM文档对象模型 | 登录 -> 注册 |
|
1F DOM文档对象模型 菜鸟 Post by : 2008-07-13 01:49:05.0
DOM就是文档对象模型(Document Object Model),最初是W3C为了解决浏览器大战时代不同浏览器之间的差别而制定的,主要就是IE和Netscape Navigator之间的差别。 用简单通俗的语言来说,DOM使得你可以访问页面上的标准组件(元素、样式表、脚本、etc.)并处理它。多年来,那些希望创建前端Web应用的程序员们都必须使用Java Applet、Flash或者ActiveX。当然现在这些工具还是可以使用的,但是支持DOM的浏览器使得Web开发人员拥有了创建多样化、功能强大的基于Web的应用程序的能力,而且完全使用基于标准的技术。 DOM将整个HTML文档展现为内存中的一棵树状结构(浏览器内存中仅仅只有一棵这样的HTML DOM树,其根节点为document对象),每个元素、属性都是树上的一个节点。可以通过JavaScript来访问这棵DOM树,遍历树上的节点、动态添加、删除树上的节点、设置或修改某个节点的样式、设置或修改某个节点中保存的数值等等。通过JavaScript对于这棵DOM树所做的任何修改都会立即生效,JavaScript不能够控制浏览器重新呈现DOM树的时间。因为浏览器重新呈现DOM树是一个非常耗时的操作,所以应该将做这种操作的次数尽量减到最少。 创建div,将其附加到document上。 创建div。 另外,DOM树上的每个节点都是一个非常庞大的对象。为了直观地了解DOM节点是如何庞大,可以使用Firefox中的DOM检查器任意打开一个DOM节点,其中属性的数量会让你大吃一惊,尤其是style数组中的属性数量。因此当动态创建的DOM节点不再使用时,一定要及时释放掉(就是将到它的引用全部设置为null,使其处于不可达的状态,以便垃圾回收器能够及时将其回收)。如果没有及时释放不用的DOM节点,一段时间之后可能会造成惊人的内存泄漏。 最后再说一下,innerHTML这个属性并不是W3C DOM的标准属性。这个属性最初是IE的发明,但是开发者使用起来非常方便,于是成为了事实上的标准。其他所有主流的浏览器也都支持这个属性,所以可以放心使用。而outerHTML、innerText则只有IE支持,在开发跨浏览器的Ajax应用时,不应该使用这两个属性。 |
| 风信Java论坛 ›› javascript/html/css 讨论交流中心 ›› DOM文档对象模型 | 登录 -> 注册 |