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

javascript前台优化优化之documentFragment对象

阅读更多

documentFragment对象:无父窗口的文档对象(或者叫文档碎片)

作用:javascript在操作DOM时都会重新加载整个文档的DOM为了减少DOM操作可以在操作DOM(为其添加或删除属性时)可以将DOM放入documentFragment中,最后一次性操作文档碎片

说白了documentFragment就是缓冲区:buffer

var oui=document.getelementbyid("oitem"); 
for(var i=0;i<10;i++) 
{ 
var oli=document.createelement("li"); 
oui.appendchild(oli); 
oli.appendchild(document.createtextnode("item"+i)); 
} 


上面的代码在循环中调用了oui.appendchild(oli),每次执行这条语句后,浏览器都会更新页面。其次下面的oui.appendchild()添加了文本节点,也要更新页面。所以一共要更新页面20次。 
为了页面的优化,我们要尽量减少dom的操作,将列表项目在添加文本节点之后再添加,并合理地使用creatdocumentfragment(),代码如下:
var oui=document.getelementbyid("oitem"); 
var ofragment=document.createdocumentfragment(); 
for(var i=0;i<10;i++){ 
var oli=document.createelement("li"); 
oli.appendchild(document.createtextnode("item"+i)); 
ofragment.appendchild(oli); 
} 
oui.appendchild(ofragment); 
分享到:
评论

相关推荐

    js中的DocumentFragment1

    js中的DocumentFragment1

    Vue超长列表渲染性能优化

    本资源是对浏览器中的Event Loop深入理解,requestAnimationFrame性能优化,DocumentFragment性能优化,Vue.js中的固定高度虚拟列表优化,面向未来的无限列表优化方案的实践,是对vue原理的一次深入理解。

    JavaScript Tips 使用DocumentFragment加快DOM渲染速度

    大家在开发JavaScript应用的时候,如果遇到这种大量节点的情况,不妨将DocumentFragment作为一个备选的方案。

    JavaScript游戏之优化篇

    善用DocumentFragment 之前有个打飞机的游戏。我是用如下方法添加子弹 代码如下: for(var i=0;i&lt;5;i++){ var bullet = new Bullet(); document.body.appendChild(bullet); } 问题就来了,我的目的是希望同时能...

    JavaScript事件委托的技术原理 – WEB骇客1

    1. 用JavaScript检测离线/在线状态 4. 使用 jQuery 复制文字到剪贴板的技巧 5. JavaScript DocumentFragment:

    JavaScript权威指南

    JavaScript权威指南 犀牛书 Chapter 1. Introduction to JavaScript Section 1.1. JavaScript Myths Section 1.2. Versions of JavaScript Section 1.3. Client-Side JavaScript Section 1.4. JavaScript ...

    关于javascript document.createDocumentFragment()

    他支持以下DOM2方法: appendChild, cloneNode, hasAttributes, hasChildNodes, insertBefore, normalize, removeChild, replaceChild. 也支持以下DOM2屬性: attributes, childNodes, firstChild, lastChild, local...

    javascript DOM 操作基础知识小结

    DOCTYPE&gt;语法)的对象表现形式,它不能包含子节点。DocumentFragment--可以像Document一样来保存其他节点。Element--表示起始标签和结束标签之间的内容,例如&lt;tag&gt;&lt;/tab&gt;或者。这是唯一可以同时包含特性和子节点...

    比较详细的javascript DOM 学习笔记第1/2页

    DOCTYPE&gt;语法)的对象表现形式,它不能包含子节点。DocumentFragment--可以像Document一样来保存其他节点。Element--表示起始标签和结束标签之间的内容,例如&lt;tag&gt;&lt;/tab&gt;或者。这是唯一可以同时包含特性和子节点...

    JavaScript Table行定位效果

    还要注意的是id属性也会被克隆,也就是克隆后会有两个相同id的元素(如果克隆对象有设置的话),这很容易会导致其他问题,程序会把克隆table的id属性设空。 ps:table请用class来绑定样式,用id的话新table就获取不...

    前端开发常见问题汇总概要总结.docx

    前端开发常见问题涵盖了多个维度,从技术基础知识、编码实践、性能优化到跨平台兼容性等。以下是一些主要的前端开发常见问题及其简要说明: 基础知识不牢固 编程思维和基本算法的理解:新手开发者可能会因为对基础...

    Javascript ParentNode和ChildNode接口原理解析

    节点对象除了继承 Node 接口以外,还拥有其他接口。ParentNode接口表示当前节点是一个父节点,提供一些处理子节点的方法。ChildNode接口表示当前节点是一个子节点,提供一些相关方法。 ParentNode 接口 如果当前...

    教你3分钟利用原生js实现有进度监听的文件上传预览组件

    前言 本文主要介绍如何使用原生js,通过面向对象的方式实现一个文件上传预览的组件,... DocumentFragment API:主要用来优化dom操作 minix :用来实现对象混合 正则表达式:匹配文件类型 class :类组件 github地址

    vue-source-code-analyze:vue源代码分析-vue source code

    准备 [] .slice.call(lis):将伪整数...DocumentFragment:文档碎片(高效批量更新多个副本) obj.hasOwnProperty(prop):判断prop是否是obj自身的属性 数据代理(MVVM.js) 通过一个对象代理对另一个对象中属性

    171208_VueSource:Vue源码分析

    指定初始值writable: true/false value是否可以修改存取(访问)描述符get: 函数, 用来得到当前属性值set: 函数, 用来监视当前属性值的变化4.Object.keys(obj): 得到对象自身可枚举的属性名的数组5.DocumentFragment:...

    MVVM:对VueMVVM模式的理解

    指定初始值writable: true/false value是否可以修改存取(访问)描述符get: 函数, 用来得到当前属性值set: 函数, 用来监视当前属性值的变化4.Object.keys(obj): 得到对象自身可枚举的属性名的数组5.DocumentFragment:...

    Landing-Page

    关于该项目是关于通过使用javascript操作... of)(forEach) DOM对象方法(document.querySelectorAll()) documentFragment提高性能IntersectionObserver接口,用于更改视图端口中当前节的活动类与用户互动的事件

    VueSource:数据代理-》模板解析-》数据劫持-》数据绑定---》 Vue源码解析

    指定初始值writable: true/false value是否可以修改存取(访问)描述符get: 函数, 用来得到当前属性值set: 函数, 用来监视当前属性值的变化4.Object.keys(obj): 得到对象自身可枚举的属性名的数组5.DocumentFragment:...

Global site tag (gtag.js) - Google Analytics