zoukankan      html  css  js  c++  java
  • document.createDocumentFragment(文档碎片)

    document.createDocumentFragment实际上是为了减少Dom次数, 提高页面效率和性能;因为每当javascript对Dom操作一次, 页面将刷新一次并更新内容;而利用document.createDocumentFragment创建一个文档碎片, 将所有Dom操作追加到该文档碎片, 最后一次性将该文档碎片添加到document中。相比前者,后者只需要对Dom操作一次, 页面也就只被刷新一次, 由于页面刷新次数大大减少, 从而提高页面显示的效率。

    <html>

    <head>

        <title>document.createDocumentFragment()测试页面</title>

    </head>

    <body>

        <script type="text/javascript">

            var d1 = new Date();

            for (var i = 0; i < 1000; i++) {

                var op = document.createElement("P");

                var oText = document.createTextNode("test1");

                op.appendChild(oText);

                document.body.appendChild(op);

            }

            var d2 = new Date();

            document.write("方法一用时:" + (d2.getTime() - d1.getTime()) + "<br/>");
            alert(d2.getTime() - d1.getTime());

            //---+-----

            var d3 = new Date();

            var oFrag = document.createDocumentFragment();

            for (var i = 0; i < 1000; i++) {

                var op = document.createElement("P");

                var oText = document.createTextNode("test2");

                op.appendChild(oText);

                oFrag.appendChild(op);

            }

            document.body.appendChild(oFrag);

            //这段代码中

            var d4 = new Date();

            document.write("方法二用时:" + (d4.getTime() - d3.getTime()) + "<br/>");
            alert(d4.getTime() - d3.getTime());

        </script>

    </body>

    </html>
    PS. 比较方法一和方法二程序执行所需要的时间, 应该是方法一大于方法二。

  • 相关阅读:
    正则表达式解决身份证号码和手机号
    redis:集群配置
    linux:NFS
    xshell提示必须安装最新的更新
    linux:ssh远程调用tomcat脚本时候出错
    linux:scp从入门到刚入门
    linux:SSH最简单教程
    nginx;keepalived配置出现主主的解决方法(脑裂问题)
    (4)事件处理——(4)网页上的多个脚本(Multiple scripts on one page)
    [php]应用控制器(一)
  • 原文地址:https://www.cnblogs.com/yltleeral/p/3376151.html
Copyright © 2011-2022 走看看