2

我遇到的问题是客户大多都在使用 IE8。屏幕上有这么多元素,IE8 难以识别单击或导航到哪个单元格。速度是不可接受的,所以我正在寻找提高点击识别速度的方法。我已经安装了一个 jQuery Pagination 插件,它使用户能够更改显示的行数,这提高了一些速度,但还不够。

让我提出这个问题的原因是,使用 .delegation() 和 .click() 时点击识别速度没有区别。在 IE8 中,即使 .delegate 应该快得多。下面的 JSFiddle 是我最大的表的表示,大约 10,000 个单元格。它启用了“单击”和箭头键导航,因此您可以看到 IE8 和 Firefox/Chrome/etc 之间的速度明显差异。此外,IE8 中的 JSFiddle 可能很难呈现示例。

http://jsfiddle.net/RaySuave/Q6vex/1/
(jQuery 代码来自这个网站上的另一个帖子,我做了一些模组来满足我的需要)

我试图解决这个问题的最巧妙的失败尝试是将委派分配给固定数量的行,而不是像这样的模式中的整个表:

$(function(){
   $('table tr').slice(0, 5).delegate("td","click",function);
});

$(function(){
   $('table tr').slice(5,10).delegate("td","click",function);
});

$(function(){
   $('table tr').slice(10, 15).delegate("td","click",function);
});

仅供参考 - 在不同浏览器中测试 jQuery 事件处理方法的速度
http://jsperf.com/bind-vs-click/41

为什么需要这么大的桌子?
我正在将过去手动填充到 excel 中的大型电子表格转换为动态的基于 Web 的站点,用户可以在其中通过单元格单击和箭头键导航来填充 HTML 表格单元格。单元格值将保存在数据库中。所有授权人员都可以通过网站访问这些表格以供查看。

我已经完成了所有的编码,包括用于使单元格可编辑的 jQuery、用于列标题的垂直文本以及通过 Coldfusion 和 MS-SQL 将值写入数据库。

提前感谢您的任何意见或建议。

4

1 回答 1

1

如果它可以帮助某人搜索缓慢的 ie8 问题:How to force ie8 to repaint after adding a class to a dom element。尽可能减少 DOM 上的元素和事件的数量,并使用[some-attr]选择器而不是.some-class选择器。

于 2012-12-10T21:46:27.893 回答