下面的实验是验证push()函数与CreateElement()函数在创建HTML元素的效率。可以看出,实用push()确实效率要比后者要高,不过究竟可以高出多少,还需要有专研精神的朋友去测试了,这里仅仅是抛砖引玉。

效果演示

this is div1
this is div2

JavaScript Code

01 <script type="text/javascript">
02 var d = new Date().getTime(), buf = [],
03 div1 = document.getElementById('div1'),
04 div2 = document.getElementById('div2'),
05 t1 = document.getElementById('t1'),
06 t2 = document.getElementById('t2');
07 function test1()
08 {
09     for(var i=0; i<1000; i++)
10     {
11         buf.push('<div><a href="#">测试');
12         buf.push(i);
13         buf.push('</a></div>');
14     }
15     div1.innerHTML = buf.join('');
16     t1.value = '耗时:' + (new Date().getTime() - d) + ' 毫秒';
17 }
18 function test2()
19 {
20     for(var i=0; i<1000; i++){
21         var a = document.createElement('a');
22         var div = document.createElement('div');
23         a.href = '#';
24         a.innerHTML = '测试';
25         div.appendChild(a);
26         div2.appendChild(div);
27     }
28     t2.value = '耗时:' + (new Date().getTime() - d) + ' 毫秒';
29 }
30 function clearVal()
31 {
32     div1.innerHTML = '';
33     div2.innerHTML = '';
34     t1.value = '';
35     t2.value = '';
36 }
37 </script>

push与createElement性能比较的更多相关文章

  1. 框架操作DOM和原生js操作DOM比较

    问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...

  2. JavaScript--动态添加元素

    在网页中,使用JavaScript动态创建元素的方式有三种: 1.document.write() 2.Element.innerHTML 3.document.createElement() 在上述 ...

  3. webAapi

    学习目标: 掌握API和Web API的概念 掌握常见浏览器提供的API的调用方式 能通过Web API开发常见的页面交互功能 能够利用搜索引擎解决问题 typora-copy-images-to: ...

  4. 为IE8添加EventListener系列方法支持

    在低版本IE中添加DOM元素事件可以使用attachEvent方法.但是用它模拟addEventListner还要解决一些问题.主动触发事件的API设计逻辑不同,需要处理的地方比较多.fireEven ...

  5. 深入浅出:HTTP/2

    上篇文章深入浅出:5G和HTTP里给自己挖了一根深坑,说是要写一篇关于HTTP/2的文章,今天来还账了. 本文分为以下几个部分: HTTP/2的背景 HTTP/2的特点 HTTP/2的协议分析 HTT ...

  6. react 全局公共组件-----动态弹窗 (dialog)

    react 的时候,总是会用到弹窗,并且各种各样的,一般来说,组件层级嵌套之后,就会出现 z-index层级覆盖的问题 这个时候,就需要一个公共的弹出层,然后我们将需要展示的组件,放到弹出层里面 下面 ...

  7. Dart- move html element

    今天给出一个例程,像是个小游戏!哈哈 一 html //anagram.html <!DOCTYPE HTML> <html> <head> <title&g ...

  8. d-ary heap实现一个快速的优先级队列(C#)

    d-ary heap简介: d-ary heap 是泛化版本的binary heap(d=2),d-ary heap每个非叶子节点最多有d个孩子结点. d-ary heap拥有如下属性: 类似comp ...

  9. CVE-2013-3897漏洞成因与利用分析

    CVE-2013-3897漏洞成因与利用分析 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存.攻击者可以利用此类漏洞实现远程代码执行.UAF漏洞的根源源于对对 ...

随机推荐

  1. linux命令(实用!)

    本文转载自网络 1.1 shell家族 shell:命令解释器,根据输入的命令执行相应命令. 察看当前系统下有哪些shell: cat /etc/shells 察看当前系统正在使用的shell ech ...

  2. 第八模块:算法&设计模式、企业应用 第1章 常用算法&设计模式学习

    第八模块:算法&设计模式.企业应用 第1章 常用算法&设计模式学习

  3. 【input】输入框组件说明

    input输入框组件 原型: <input value="[String]" type="[text | number | idcard | digit]" ...

  4. [Clr via C#读书笔记]Cp7常量和字段

    Cp7常量和字段 常量 常量在编译的时候必须确定,只能一编译器认定的基元类型.被视为静态,不需要static:直接嵌入IL中: 区别ReadOnly 只能在构造的时候初始化,内联初始化. 字段 数据成 ...

  5. ThreadLocal 线程的私有内存

    话说在<操作系统原理>这门课里面,我们学到了很多概念:进程.线程.锁.PV操作.读写者问题等等,大家还记得么?(估计有些概念早已忘记了吧,哈哈哈~) 其中关于进程.线程和锁的东西是我们平时 ...

  6. 关于excle导数据的一些代码笔记

    package com.bonc.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutpu ...

  7. canvas学习(四):高级属性

    一:阴影 示例:绘制一个带有阴影的正方形 var canvas = document.getElementById("myCanvas") var ctx = canvas.get ...

  8. 又见CLOSE_WAIT

    原文: http://mp.weixin.qq.com/s?__biz=MzI4MjA4ODU0Ng==&mid=402163560&idx=1&sn=5269044286ce ...

  9. Comparison of Android versions(strcmp的应用)

    Description As an Android developer, itˇs really not easy to figure out a newer version of two kerne ...

  10. 软工2017团队协作第七周——个人PSP

    10.27 --11.2本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 开始时间                结束时间 中断时间 实际用时 ...