`
accpxudajian
  • 浏览: 456486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

添加DOM元素的优化方案(appendChild优化)

 
阅读更多

/*节约使用DOM
        JavaScript对DOM的处理可能是最耗费时间的操作之一。每次JavaScript对DOM的操作都会改变页面的表现、并重新渲染整个页面、从而有明显的时间消耗。比较快捷的方法就是尽可能不在页面进行DOM操作、如下例中为ul添加了10个条目。*/
view plain print ?
var  oUl = document.getElementById( "ulItem" );  
        for ( var  i=0;i<10;i++){  
            var  oLi = document.createElement( "li" );  
            oUl.appendChild(oLi);  
            oLi.appendChild(document.createTextNode("Item " +i));  
        }  

         /*以上代码在循环中调用oUl.appendChild(oLi)、每次执行这条语句后、浏览器就会重新渲染页面、其次给列表添加文本节点oLi.appendChild(document.createTextNode("Item "+i))、这也会造成页面被重新渲染。因此每次运行都会造成两次重新渲染页面、共20次。
        通常应当尽可能减少DOM的操作、将列表项目在添加文本节点之后在添加、并合理地使用createDocumentFragment()、代码如下:*/
view plain print ?
var  oUl = document.getElementById( "ulItem" );  
        var  oTemp = document.createDocumentFragment();  
        for ( var  i=0;i<10;i++){  
            var  oLi = document.createElement( "li" );  
            oLi.appendChild(document.createTextNode("Item " +i));  
            oTemp.appendChild(oLi);  
        }  
        oUl.appendChild(oTemp);  
 
分享到:
评论

相关推荐

    Javascript_Dom操作案例

    在这个“Javascript_Dom操作案例”中,我们将深入探讨如何利用JavaScript有效地操纵DOM元素,提升用户体验并实现动态网页功能。 1. **DOM基本概念**: DOM是一种标准,用于表示HTML或XML文档的树形结构。每个节点...

    JavaScript.DOM高级程序设计](下)

    - `parentElement.appendChild(newNode)`:将新节点添加到指定父元素的末尾。 - `parentElement.insertBefore(newNode, referenceNode)`:在参考节点前插入新节点。 ```javascript var newDiv = document....

    Dom帮助文档2010版 最新版

    文档还涵盖了如何通过JavaScript访问和修改DOM元素,如使用`document.getElementById()`、`document.createElement()`等函数。 8. **DOM层次结构** DOM层次结构的理解是高效操作的关键。2010版文档会解释如何遍历...

    JavaScript开发微小的DOM库

    - `createElement`: 创建新的DOM元素。 - `appendChild`, `insertBefore`: 添加或插入元素到父元素中。 - `removeChild`: 移除元素。 - `setAttribute` 和 `getAttribute`: 设置或获取元素属性。 - `innerHTML`...

    前端开源库-dom-stub

    1. **创建虚拟DOM节点**:这个库允许开发者生成模拟的DOM元素,这些元素具有与真实DOM节点相似的方法和属性,如`appendChild`、`removeChild`、`innerHTML`等,但不会影响到实际的文档。 2. **事件模拟**:在测试中...

    JavaScript DOM编程艺术 源代码

    5. **元素操作**:可以使用JavaScript创建新元素、删除元素、修改元素属性、添加或移除样式,以及插入和移动元素。例如,`createElement`、`appendChild`、`setAttribute`、`innerHTML`等方法。 6. **CSS操作**:...

    JavaScriptDOM编程艺术及源代码

    JavaScript DOM编程艺术是一本深入探讨JavaScript与DOM交互的权威指南,它涵盖了JavaScript在网页动态化、元素操作、事件处理以及Ajax通信等方面的核心技术。DOM(Document Object Model)是Web页面的一种结构化的...

    JavaScript DOM应用

    实践中,还需要注意性能优化,比如避免频繁的DOM操作,使用`innerHTML`的替代方案(如`createDocumentFragment`)来减少重绘和回流,以及使用事件委托来提高效率。 总之,JavaScript DOM应用是前端开发者必备的技能...

    javascript appendChild,innerHTML,join性能比较代码

    在JavaScript中,向DOM(文档对象模型)动态添加元素是常见的操作,这通常涉及`appendChild()`、`innerHTML`和数组的`join()`等方法。这些方法各有优缺点,且在性能上有所不同。以下是对这些方法的详细说明: 1. `...

    Viajs实现在一个WebWorker中使用DOM

    例如,你可以创建一个新的元素,设置属性,甚至添加事件监听器。所有这些操作都会被转换为消息传递到主线程,由主线程负责实际的DOM更新。 ```javascript // 在Worker中 importScripts('path/to/via.js'); via.post...

    使用本机DOMAPI的微型滚动管理库_JavaScript_HTML_下载.zip

    例如,`document.querySelector()`和`document.querySelectorAll()`可以用于选取指定的DOM元素,而`element.appendChild()`和`element.removeChild()`则用于修改元素的子结构。 滚动管理库的核心功能通常包括: 1....

    js软键盘

    1. 动态创建DOM元素:使用`document.createElement()`方法创建键盘按钮,然后将它们添加到页面上的某个容器元素中,如`&lt;div&gt;`。 2. 绑定事件监听器:为每个键盘按钮添加`click`事件监听器,当用户点击按钮时触发...

    jquery appen table 问题 ie8下解决方法

    - IE8的DOM操作限制:IE8并不完全支持W3C标准,特别是关于动态创建和修改DOM元素的部分。这可能使`append()`在某些场景下表现不一致。 - 表格元素的插入规则:在HTML中,`&lt;tr&gt;`元素必须直接位于`&lt;tbody&gt;`内,而`...

    DOMjs:DOM课程JS与JS的简单表

    2. **添加元素**:使用`createElement`创建新的HTML元素,然后通过`appendChild`或`insertBefore`将其添加到DOM树中。 3. **修改元素**:通过`innerHTML`、`textContent`或属性操作符,可以改变元素的内容或属性值。...

    tv-show-dom-project

    "JavaScript"是这个项目的关键技术,意味着开发者需要熟悉JavaScript语言,特别是DOM操作的相关API,如document.getElementById、document.createElement、appendChild、innerHTML等,以及事件处理程序的添加和移除...

    电视节目dom项目

    在描述中提到的"解决方案"部分,可能是指项目完成后提供的代码示例或者指导,帮助参与者理解如何解决特定问题,例如如何使用DOM API来创建、查找、修改和删除DOM元素。这个部分可能还会涵盖错误处理、性能优化以及...

    Js内存泄漏及解决方案.pdf

    当DOM元素和函数对象相互引用,形成了闭环,且没有在不再需要时解除引用,就会发生内存泄漏。要解决这种问题,应当在不再需要引用时,手动解除它们: ```javascript onunload: document.getElementById('myDiv')....

    js列表图片拖拽排序代码.zip

    这通常涉及到JavaScript数组的`splice()`和`indexOf()`方法,以及DOM的`appendChild()`或`insertBefore()`方法。 5. **兼容性处理**: 虽然现代浏览器支持HTML5的拖放API,但旧版本的浏览器可能不支持。因此,我们...

    shuiyin.rar

    这可能涉及到`document.createElement()`创建新的HTML元素,`element.style`设置元素样式,以及`element.appendChild()`将水印元素添加到页面的指定位置。 3. **循环与遍历**:为了在网页上的所有图片或者特定元素...

Global site tag (gtag.js) - Google Analytics