push与createElement性能比较

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

效果演示

this is div1

this is div2

JavaScript Code

view source

print?

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>
时间: 2024-10-08 10:28:53

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

webAapi

学习目标: 掌握API和Web API的概念 掌握常见浏览器提供的API的调用方式 能通过Web API开发常见的页面交互功能 能够利用搜索引擎解决问题 typora-copy-images-to: media --- Web API Web API介绍 API的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.

12个非常有用的javascript技巧,必看!

提示:该文章是整理别人别人的文章,作者比较多,很难分辨原创作者是谁. 1)使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将他们的值视为true.对于这样的检查,你可以使用!!(双重否定运算符),他能自动将任何类型的数据转化为布尔值,只有0.null."".undefined或NaN才会返回false,其他的都会返回true.看一个简单的例子: function Account(cash){ this.cash = cash; this.ha

JavaScript 内存释放测试

JS内部实现垃圾回收机制 无法立即释放 只要数据没有依赖关系 就会在下轮内存回收时清理 ! function () { var array = [] , count = 100*100*100*5 , time = +new Date ; while( count-- ) array.push( document.createElement('el') ) ; console.log( +new Date - time, array.length ) ; count = 100*100*100*

CVE-2013-3897漏洞成因与利用分析(UAF类漏洞分析流程)

CVE-2013-3897漏洞成因与利用分析(UAF类漏洞分析流程) 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存.攻击者可以利用此类漏洞实现远程代码执行.UAF漏洞的根源源于对对象引用计数的处理不当,比如在编写程序时忘记AddRef或者多加了Release,最终导致对象的释放.对于IE的大部分对象(COM编程实现)来说,+4偏移处的含义是该对象的引用计数,可以通过跟踪它来定位补丁前后的位置及被释放的位置.+0偏移处的含义是该对象的虚函数表指针,可以通

《Java编程思想》笔记 第十一章 持有对象

1.保存对象引用 1.数组,数组具有固定大小 2.容器类,可自动调节大小 2.容器类 List  Set  Queue  Map 及常用的实现类 2.1 Collectioon (接口) 保存独立的元素序列,未使用泛型时保存Object对象.(独立并不是不同) 2.1.1 List(接口) 按插入顺序保存 ArrayList :先当于大小可变的数组,随机访问快,插入移除慢. LinkedList :插入移除快,访问慢. 2.1.2 Set(接口) 不能有重复元素 1.HashSet :最快获取元

javaScript从入门到精通2.md

Web API Web API 介绍 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 任何开发语言都有自己的API:API的特征输入和输出(I/O):API的使用方法(console.log()) 浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM),此处的Web API特指浏览器提供的API(一组方法

刷题114. Flatten Binary Tree to Linked List

一.题目说明 题目114. Flatten Binary Tree to Linked List,将一个二叉树"原地"压缩为"链表"形态的二叉树.难度为Medium! 二.我的解答 这个题目如果允许使用栈的话Easy,先序遍历二叉树,右子树入栈,左子树入栈.当栈不空的时候,将栈顶元素放到右子树即可. class Solution{ public: void flatten(TreeNode* root){ //先根遍历 if(root==NULL) return;

createElement与innerHtml性能比较

js中,动态添加html的方法大致就是两种,一种是document.createElement等方法创建,然后使用Element.appendChild添加,或者是使用Element.innerHTML = sHTML的方式.两种方法,显然前面一种更加灵活,除了Element.appendChild方法外,还有insertBefore等等其他dom操作方式.这里且不谈灵活性,但就性能做一个探索. 比较的方式很简单: 各生成10000次形如<div><span>性能测试</sp

Array的push与unshift方法性能比较分析

从原理就可以知道,unshift的效率是较低的.原因是,它每添加一个元素,都要把现有元素往下移一个位置.但到底效率差异有多大呢?下面来测试一下. 测试环境的主要硬件:CPU T7100(1.8G):内存4G DDR2 667:硬盘5400转.主要软件:操作系统为Windows 7:浏览器为Firefox 3.6.9.测试代码: var arr = [ ], s = +new Date; // push性能测试 for (var i = 0; i < 50000; i++) { arr.push(