在 IE 中将表解析为数组对象的有效方法
Posted
技术标签:
【中文标题】在 IE 中将表解析为数组对象的有效方法【英文标题】:efficient way to parse table to array object in IE 【发布时间】:2011-10-28 01:06:33 【问题描述】:我有超过 1k 行和超过 7 列的表,试图解析为数组对象,我尝试使用 jquery
$(tableSearch).each(function ()
$('tr', $(this)).each(function (key, tr)
var self = this;
var obj = new Object();
var rowPos = 0;
$('td', tr).each(function (rowPos)
obj[_self.colModel[rowPos].name] = $(this).html();
);
obj['Key'] = 'Rec-' + key;
);
);
在 FF 中需要 300 毫秒,但在 IE 中需要 60 秒 :(
因为你可以比较它慢 200 倍左右。
有什么方法可以在 IE 中获得性能。我尝试了原始的javascript方法也仍然在IE效率没有达到。
帮助我!!!!!!!.. 我怎样才能在所有浏览器中获得相似的性能。
提前致谢
【问题讨论】:
没有办法解决这个问题。如果可以推迟任务***.com/questions/1160137/… 或向用户显示某种进度条,您应该考虑将代码作为后台线程运行.. 保时捷比乌龟快,这就是生活。只要乌龟不能跑得更快,您就需要将保时捷减速以获得相似的速度。 不能把数据留在表里吗? $("#tableId tr").eq(1000) 我正在尝试从数据表中生成网格(我必须使用 JQGRID)。所以我需要将该表解析为数组对象。我别无选择。因为我将无法访问此表的生成方式。它是一个庞大的安全系统。仅提供数据表。我需要在哪里添加所有操作,例如动态添加、删除按钮.. 你试过不使用 jQuery 吗?当它是一个简单的 for 循环时,它可能会更快。也许.. ^^ 【参考方案1】:我得到了解决方案,如果我们以这种方式实现,IE 会更快
table = document.getElementById("myGrid");
for (i = 0; i < table.rows.length; i += 1)
var rowData = new Array();
row = table.rows[i];
for (j = 0; j < row.cells.length; j += 1)
cell = row.cells[j];
rowData[j] = cell.innerHtml
obj.push(rowData);
注意:如果您使用任何调试器,请禁用调试模式。
那么 IE 似乎是合理的,但不能比 FF 或 safari 快
【讨论】:
以上是关于在 IE 中将表解析为数组对象的有效方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android Studio 中将 CSV 文件解析为数组