如果对客户端动态交互要求比较高,在DOM里需要频繁动态增加元素,那么可能会遇到性能问题,那么就有可能用到DocumentFragment了,具体看看下面的例子,性能差别还是挺大的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

<script type="text/javascript">
        function slowAdd() {
            for (var i = 0; i < 10000; i++) {
                var op = document.createElement("span");
                var oText = document.createTextNode(i);
                op.appendChild(oText);
                document.body.appendChild(op);
            }
        }

function fastAdd(){
            var oFragmeng = document.createDocumentFragment();  //创建文档碎片
            for (var i = 0; i < 10000; i++) {
                var op = document.createElement("span");
                var oText = document.createTextNode(i);
                op.appendChild(oText);
                oFragmeng.appendChild(op);
            }
            document.body.appendChild(oFragmeng); //最后一次性添加到document中
        }
    </script>

</head>
<body>
    
    <p>
        <input id="Button1" type="button" value="button" onclick = "slowAdd()"/></p>
    <p>
        <input id="Button2" type="button" value="button"  onclick = "fastAdd()"/></p>
    
</body>
</html>

参考资源:http://www.cssrain.cn/article.asp?id=1421

转载于:https://www.cnblogs.com/justinw/archive/2009/12/02/1615382.html

[JavaScript]使用document.createDocumentFragment优化性能相关推荐

  1. JS性能优化之文档碎片-document.createDocumentFragment

    讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么.          在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于少量的更新 ...

  2. JavaScript 总结几个提高性能知识点

    前段时间花时间看了大半的<High Performance JavaScript>这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了.由于空不出时间,这个月写的学习笔记也不多,忙完最 ...

  3. 加速Javascript:DOM操作优化

    原文:<Speeding up JavaScript: Working with the DOM> 作者: KeeKim Heng, Google Web Developer 在我们开发互 ...

  4. document.createDocumentFragment 以及创建节点速度比较

    document.createDocumentFragment document.createDocumentFragment()方法创建一个新空白的DocumentFragment对象. Docum ...

  5. 前端不哭!最新优化性能经验分享来啦 | 技术头条

    作者 | Dimitris Kiriakakis 译者 | 风车云马 编辑 | Jane 出品 | Python大本营(id:pythonnews) [导语]Angular.React.VueJS 是 ...

  6. 硬件加速下webview切换闪屏_网页渲染性能优化 —— 性能优化下

    博客 有更多精品文章哟. Composite 的优化 终于,我们到了像素管道的末尾.对于这一部分的优化策略,我们可以从为什么需要 Composited Layer(Graphics Layer)来入手 ...

  7. JavaScript 事件对内存和性能的影响

    程序代码: <%--Created by IntelliJ IDEA.User: 乔克叔叔Date: 2017/12/26Time: 16:45To change this template u ...

  8. [转帖]ASP.NET中常用的优化性能的方法

    ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理) 1.       数据库访问性能优化     数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要 ...

  9. c mysql批量插入优化_MySQL实现批量插入以优化性能的教程

    这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时 ...

最新文章

  1. ORM武器:NHibernate(三)五个步骤+简单对象CRUD+HQL
  2. golang 切片删除指定内容
  3. 怎么将零件整合到一起_Fraunhofer ILT用于大型零件3D打印的“边飞行边加工”的LPBF概念...
  4. Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)
  5. git 入门教程之 git 私服搭建教程
  6. 自学导航页(待续ing)
  7. symfony3 使用命令行工具生成Entity实体所踩的坑
  8. IRF之LACP-MAD检测
  9. win10锁屏状态闹钟提示设置
  10. 超宽带 DWM1000模块 校准
  11. 漏洞扫描器简单教程(天镜、Nessus、Appscan、Awvs)
  12. 单片机中的冒泡排序(汇编语言)
  13. idea安装插件gitee、插件商店里搜不到插件?
  14. hurst代码 python_python中的Hurst指数
  15. android system权限 工具,APK程序获取system权限的方法
  16. Spring学习(二)IOC
  17. 解决 CAP_IMAGES: can‘t find starting number (in the name of file)
  18. SMART硬盘检测参数详解
  19. 一年级上册知识点——语文(人教版)
  20. 为什么会有口臭,如何避免?

热门文章

  1. 面试:一文搞懂重载和重写的区别
  2. c# 智能升级程序代码(2)
  3. 分析ASP.NET读取XML文件4种方法
  4. windows环境下memcache服务器使用经验
  5. CSS3: Media Query实现响应式Web设计
  6. Write a simple HTML Browser(hdu1088)
  7. Go 标准库: io
  8. android 安装内核module,提示Required key not available
  9. 存储过程测试dbms、lpad与chr(10)
  10. LeetCode 507. Perfect Number