首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将HTML字符转换为DOM节点并动态添加到文档中

将HTML字符转换为DOM节点并动态添加到文档中 将字符串动态转换为DOM节点,在开发中经常遇到,尤其在模板引擎中更是不可或缺的技术。...字符串转换为DOM节点本身并不难,本篇文章主要涉及两个主题: 1 字符串转换为HTML DOM节点的基本方法及性能测试 2 动态生成的DOM节点添加到文档中的方法及性能测试 本文的示例:...最大的区别是因为DocumentFragment不是真实DOM树的一部分,它的变化不会引起DOM树的重新渲染的操作(reflow) ,且不会导致性能等问题。...下面我们看看将生成的DOM元素动态添加到文档中的方法。 1.2.0 批量添加节点 被动态创建出来的节点大多数情况都是要添加到文档中,显示出来的。下面我们来介绍并对比几种常用的方案。...DocumentFragment正确的应用场景应该是作为虚拟DOM容器,在频繁修改查询但是并不需要直接渲染的场景中。 本文转载自玄魂工作室 全新 的前端垂直订阅号“玄说前端”,欢迎关注

7.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS魔法堂:再识IE的内存泄露

    一、前言                               IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了。...JS Engine Object、DOM Element 和 BOM Element     Script中我们能操作的对象可分为三种:JS Engine Object、DOM Element 和 BOM...和DOM Element是我们可以CRUD的,因此也就有可能发生内存泄漏的问题。...而当将parentDiv添加到DOM tree中时,则childDiv和parentDiv均继承document的scope,而temporary scope却不会被GC释放,而要等待浏览器刷新页面才能清理...Tree)中移除节点后,会创建一个新的#documentFragment,并且被移除的节点的parentNode为该#documentFragment,而该#documentFragment.firstChild

    3.4K50

    前端性能优化 常见面试题速查

    使用 absolute 或 fixed 使元素脱离文档流,这样他们发生变化就不会影响其他元素 避免频繁操作 DOM,可以创建一个文档片段 documentFragment,然后把需要操作的元素添加到文档片段中...,当队列中的操作到了一定的数量或者到达一定的时间间隔,浏览器就会对队列进行批处理,这会让多次的回流、重绘合并成一次 # 如何优化动画 通常,动画需要频繁地操作 DOM,就会导致页面的性能问题。...与 document 相比,最大的区别是 DocumentFragment 不是真是 DOM 树的一部分,它的变化不会触发 DOM 树的重新渲染,且不会导致性能问题。...在频繁的 DOM 操作时,就可以将 DOM 元素插入 DocumentFragment,之后一次性地将所有的子孙节点插入文档中。...和直接操作 DOM 相比,将 DocumentFragment 节点插入 DOM 树时,不会触发页面的重绘,大大提高了页面的性能。

    44420

    MVVM之Vue源码分析

    DocumentFragment: DocumentFragment接口表示一个没有父级文件的最小文档对象,举个栗子:如果现在页面有100000....个li标签,现在的需求是将这10000...个的innerHTML...(过多的DOM操作会引起浏览器的重排操作,即修改一次DOM,浏览器就需要重新计算部分甚至整个页面的几何结构信息,浏览器需要重新遍历DOM树,根据CSS规则进行对受到影响的DOM元素进行计算,然后进行重新绘制...,这样很耗内力的哟~~~) 而对于DocumentFragment来说,它不是真实DOM树的一部分(听起来像不像是在说virtual Dom),它的变化不会引起DOM树的重新渲染的操作(reflow),...现在的问题就是:我明明是定义在data中的name,为什么可以通过vm.name直接访问到呢?...ok,来把问题整理下,毕竟咱是个有面子的人是吧~~~ 问题提出:现在有a和b两个对象,且b对象是a对象的一个子集,b对象中有"name"等属性,由此可知,通过b.name可以直接实现对b中name的访问

    86330

    JavaScript文档(DOM)与浏览器对象模型(BOM)

    DOM简介 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。...(Attibution)和影响度因子(Influence)等属性添加到结点中,扩展其语义。...DocumentFragment接口:它代表文档树的子树,相当一个小型文档。 Attr接口:它代表元素节点的属性。有意思的是它并不认为是该元素节点的子节点,不构成DOM树的一部分。...同时也不是DocumentFragment节点的直接子节点。 CharacterData接口:它维护了DOMsitrgn字符串并提供读写操作的接口。但不直接对应文档的某种类型节点。...BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window

    1.2K10

    如何更优地去创建DOM元素

    这里简单地通过createElement创建DOM是存在比较严重的性能问题的: 1、createElement本身就是不小的性能开支 2、 每次创建li元素都换插入到DOM中,会引起多次重排和重绘。...innerHTM 对面上面那种问题,可能就会想到通过innterHTML方式去创建DOM元素 这里先举个栗子: var str = ''; for (t = 0; t DOM元素呢?接下来先介绍一个东西DocumentFragment DocumentFragment DocumentFragment是示一个没有父级文件的最小文档对象。...最大的区别是因为DocumentFragment不是真实DOM树的一部分,它的变化不会引起DOM树的重新渲染的操作,且不会导致性能等问题。...考虑这个因素,我们可以结合cloneNode和DocumentFragment在去创建DOM元素并插入到文档: var fragment = document.createDocumentFragment

    2.2K10

    从零开始学习BOM&DOM

    ,Object继承自null EventTarget 接口 EventTarget 是一个 DOM 接口,由可以接收事件、并且可以创建侦听器的对象实现。...作为浏览器窗口时,提供了对浏览器操作的相关的API; Window全局对象 在浏览器中,window对象就是之前经常提到的全局对象 比如在全局通过var声明的变量,会被添加到全局环境变量中,也就是会被添加到...document Object Model 文档对象模型 节点层次 DOM可以把任何HTML和XML文档描绘成一个由多层节点构成的树形结构。...对于HTML文档,节点主要有以下六种类型:Document节点、DocumentType节点、Element节点、Attribute节点、Text节点和DocumentFragment节点。...类型 DOM规定文档片段是一种轻量级的文档,不会像完整的文档那样占有额外的资源 可以在里面保存将来会添加到文档的节点。

    58420

    Web 性能优化-页面重绘和回流(重排)

    缓存,按需加载,前端模块化… 虽然相较于网络方面的优化,前端渲染的优化显得杯水车薪,而且随着浏览器和硬件性能的增长,再加上主流前端框架(react、vue、angular)的已经帮我们解决了大多数的性能问题...本文主要学习前端渲染相关的问题。...浏览器是如何渲染一个页面的 浏览器把获取到的 HTML 代码解析成1个 DOM 树,HTML 中的每个 tag 都是 DOM 树中的1个节点,根节点是 document 对象。...DocumentFragment 有两大特点: DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null。...当请求把一个 DocumentFragment 节点插入文档树时,插入的不是 DocumentFragment 自身,而是它的所有子孙节点。

    1.2K20

    DOM优化之重绘和回流

    因为操作DOM要收过路费。 把 DOM 和 JavaScript 各自想象成一个岛屿,它们之间用收费桥梁连接。...我们每操作一次 DOM(不管是为了修改还是仅仅为了访问其值),都要过一次“桥”。过“桥”的次数一多,就会产生比较明显的性能问题。因此“减少 DOM 操作”的建议,并非空穴来风。...#回流和重绘 JS操作DOM很慢,而且修改DOM还会引发它的外观、样式、大小、位置的改变,就会触发重流或重绘。...#如何优化 知道了DOM慢的原因,我就可以逐步优化了。 #减少DOM操作,将多次操作合并为一次。...#使用DocumentFragment 将DOM多次修改,最后一次性插入到DOM中,这点在DocumentFragment中展现的淋漓尽致,关于DocumentFragment详细操作可以下一章。

    90210

    JavaScript 学习-34.HTML DOM 创建插入删除替换元素

    前言 HTML DOM 可以创建一个新元素,并插入到指定元素的位置 createElement 创建元素 document.createElement() 可以创建一个元素 document.createTextNode...如果 newchild 是 DocumentFragment 节点,则不会直接插入它,而是把它的子节点按序插入当前节点的 childNodes[] 数组的末尾。...DocumentFragment 节点代表一个文档的片段,本身就是一个完整的 DOM 树形结构。 它没有父节点,parentNode 返回 null ,但是可以插入任意数量的子节点。...它不属于当前文档,操作 DocumentFragment 节点,要比直接操作 DOM 树快得多。 它一般用于构建一个 DOM 结构,然后再插入当前文档。...添加到div子元素,p标签前面 这是文本内容 // 创建元素节点 btn = document.createElement

    2.7K30
    领券