知识大全 解析js原生方法创建表格效率测试

Posted 表格

篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 解析js原生方法创建表格效率测试相关的知识,希望对你有一定的参考价值。

对于创建表格本文提到的算法共有 种 分别是直接操作dom 借助createDocumentFragment 借助js的原生表格操作方法  

  我们先看一下三种算法以及在各种浏览器下的表现 第一种 直接操作dom

复制代码 代码如下: <!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN" " < xmlns="     <head>         <meta equiv="Content Type" content="text/; charset=utf " />         <title>New Web Project</title>     </head>     <body> <script> microtime = function(get_as_float)             var now = new Date() getTime() / ;             var s = parseInt(now );             return (get_as_float) ? now : (Math round((now s) * ) / ) + + s; var m = microtime(true); var table = document createElement("table"); table border = ; var tbody = document createElement("tbody"); for(var i = ; i < ; i++ )     var tr = document createElement("tr");     for(var j = ; j < ; j++ )         var td = document createElement("td");         td appendChild(document createTextNode("cell "+i+" "+j));         tr appendChild(td);         tbody appendChild(tr); table appendChild(tbody); //chrome //ie //ie //ie //ie //firefox //opera //safari document body appendChild(table); var m = microtime(true); alert(m m ); </script>        </body> </>

   第二种 借助借助createDocumentFragment

复制代码 代码如下: <!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN" " < xmlns="     <head>         <meta equiv="Content Type" content="text/; charset=utf " />         <title>New Web Project</title>     </head>     <body> <script> microtime = function(get_as_float)             var now = new Date() getTime() / ;             var s = parseInt(now );             return (get_as_float) ? now : (Math round((now s) * ) / ) + + s; var m = microtime(true); var table = document createElement("table"); table border = ; var tbody = document createElement("tbody"); var fragment = document createDocumentFragment(); for(var i = ; i < ; i++ )     var tr = document createElement("tr");     for(var j = ; j < ; j++ )         var td = document createElement("td");         td appendChild(document createTextNode("cell "+i+" "+j));         tr appendChild(td);         fragment appendChild(tr); tbody appendChild(fragment); table appendChild(tbody); //chrome //ie //ie //ie //ie //firefox //opera //safari document body appendChild(table); var m = microtime(true); alert(m m ); </script>        </body> </>

   第三种 借助js的原生表格操作方法

复制代码 代码如下: <!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN" " < xmlns=" <head> <meta equiv="Content Type" content="text/; charset=utf " /> <title>New Web Project</title> </head> <body> <script> microtime = function(get_as_float) var now = new Date() getTime() / ; var s = parseInt(now ); return (get_as_float) ? now : (Math round((now s) * ) / ) + + s; var m = microtime(true); var table = document createElement("table"); table border = ; var tbody = document createElement("tbody"); table appendChild(tbody); for(var i = ; i < ; i++ ) tbody insertRow(i); for(var j = ; j < ; j++ ) tbody rows[i] insertCell(j); tbody rows[i] cells[j] appendChild(document createTextNode("cell "+i+" "+j)); var tr = document createElement("tr"); tbody appendChild(tr); //chrome //ie //ie //ie //ie //firefox //opera //safari document body appendChild(table); var m = microtime(true); alert(m m ); </script>    </body> </>

   以上可以看出用原生的js创建表格效率最好 借助createDocumentFragment优势不是很大(并不像网上说的那么明显) 借助insertRow和insertCell等在ie 下效率太低 不建议使用 对第一种算法简单的优化了一下

复制代码 代码如下: <!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN" " < xmlns="     <head>         <meta equiv="Content Type" content="text/; charset=utf " />         <title>New Web Project</title>     </head>     <body> <script> microtime = function(get_as_float)             var now = new Date() getTime() / ;             var s = parseInt(now );             return (get_as_float) ? now : (Math round((now s) * ) / ) + + s; var m = microtime(true); var table = document createElement("table"); table border = ; var tbody = document createElement("tbody"); var i = ; while(i )     var tr = document createElement("tr") j = ;     while(j )         var td = document createElement("td");         td appendChild(document createTextNode("cell "+i+" "+j));         tr appendChild(td);         tbody appendChild(tr); table appendChild(tbody); //chrome //ie //ie //ie //ie //firefox //opera //safari document body appendChild(table); var m = microtime(true); alert(m m ); </script>        </body> </> cha138/Article/program/Java/JSP/201311/19826

相关参考

知识大全 JS判定是否原生方法

JS判定是否原生方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章介绍了js判定是否原生方

知识大全 关于js遍历表格的实例

js可以利用dom非常轻松的就可以遍历一个表格当然只要是dom中有的所有对象都可以通过js来访问和处理 复制代码代码如下:cha138/Article/program/Java/J

知识大全 左侧是表头的JS表格控件

左侧是表头的JS表格控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!左侧是表头的表格数据展现&n

知识大全 js原生appendChild的bug解决心得分享

js原生appendChild的bug解决心得分享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 原生JS实现表单checkbook获取已选择的值

原生JS实现表单checkbook获取已选择的值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文

知识大全 asp.net后台获取js表格的数据

  前台:  代码  <%@PageLanguage=C#AutoEventWireup=trueCodeFile=DefaultaspxcsInherits=_Default%>    

知识大全 js动态创建控件的方法

JAVA高级:js动态创建控件的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  functi

知识大全 使用JS创建虚拟目录,并引导进入浏览

使用JS创建虚拟目录,并引导进入浏览  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用JS可以替代

知识大全 JS动态创建Table,Tr,Td并赋值的具体实现

JS动态创建Table,Tr,Td并赋值的具体实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 JBuilder2005单元测试之创建测试固件

JBuilder2005单元测试之创建测试固件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在