html中的交互式画布与渲染表.哪条路更快?
Interactive canvas vs render table in html. Which way is faster?
哪种方式更快,使用更少的内存?现在我用jQuery渲染了动态的<table>
。有时它大约有几千个细胞,当我对它执行事件时,它的工作速度很慢。Html2Canvas花了很多时间将该表渲染为图像。所以我想知道如何使用交互式画布。下面是生成表格http://fiddle.jshell.net/j6G66/
我创建了两个例子,
镜像创建表的方式
,这是通过创建和附加jQuery对象元素在每个循环迭代:
function createDynamicTable(rows, cols) {
var table = $('<table />');
for(var i=0; i<rows; i++){ // noprotect
var row = $('<tr />');
for(var j=0; j<cols; j++){
var cell = $('<td />');
cell.text("R"+i+"-C"+j);
cell.appendTo( row ); // Appends here....
}
row.appendTo( table ); // Appends here....
}
$('#tableContainer').append( table ); // Appends here....
}
第二个使用了另一种创建表的方式,它基于
的原则连接所需元素的HTML字符串表示:
function createDynamicTable(rows, cols) {
var table = "<table>";
for(var i=0; i<rows; i++){
var row = "<tr>";
for(var j=0; j<cols; j++){
var cell = "<td>R"+i+"-C"+j+"</td>";
row += cell;
}
row += "</tr>";
table += row;
}
table += "</table>"
$('#tableContainer').append( table ); // Append only once!
}
现在让我们像人类一样,夸张一点,创建一个有1000行和10个单元格的表:
var start = new Date().getTime();
createDynamicTable(1000, 10);
var total = new Date().getTime() - start;
让我们看看结果:
IN-LOOP jQuery OBJECTS/EL. CREATION vs. IN-LOOP STRING CONCATENATION
~920 ms ~130 ms
,,,,,,,,,,,,,,,,,,,,,,,, jsBin演示1 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,jsBin demo 2
A(逻辑)边注关于字符串连接:
您将无法在data-*
属性中保留活动对象的副本,例如:
cell = "<td data-objectcopy='"+ myObject +"'>...</td>"
导致对象将导致字符串"[object Object]"
,而不是jQuery的.data()
:
cell = $("<td />", {html:"..."}).data("objectcopy", myObject );
,其中任何对对象的进一步更改,如:$(td).eq(0).data().objectcopy.someProperty = "new value";
,将保持对原始myObject
对象的引用有效
相关文章:
- RubyonRails——构建交互式接口应该朝哪个方向发展
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- PHP进度条可以使用$_SESSION
- 禁用(而不是隐藏)浏览器滚动条
- 动画CSS进度条
- 在地图上画一条路线
- 使用jQuery计算数组中的对象以更改进度条
- 在firefox和chrome中的左侧显示iframe滚动条
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- jquery:将动画绑定到滚动条位置的更好方法
- 如何使用jqueryui进度条
- 在窗口中添加滚动条
- 如何平滑地设置twitter引导程序进度条的动画
- 是否可以创建一个带有进度条的跨浏览器AJAX照片上传器
- 为什么在交互式多系列折线图中使用 brushed() 时只有一条线被扩展
- 可点击的大陆/国家地图:走哪条路
- html中的交互式画布与渲染表.哪条路更快?
- 如何在three.js中制作交互式视频进度条
- 在node中怎么做呢?一条快路,一条慢路
- 如何用彩色瓷砖铺一条路