我遇到的问题是客户大多都使用IE8。由于屏幕上有如此多的元素,IE8 很难识别单击或导航到哪个单元格。速度是 Not Acceptable ,所以我正在寻找提高点击识别速度的方法。我安装了一个 jQuery 分页插件,它使用户能够更改显示的行数,这提高了一些速度,但还不够。
让我问这个问题的是,使用 .delegation() 与 .click() 时,点击识别速度没有差异。在 IE8 中,尽管 .delegate 应该更快。下面的 JSFiddle 是我最大的表格的表示,大约有 10,000 个单元格。它启用了“点击”和箭头键导航,因此您可以看到 IE8 和 Firefox/Chrome/等之间速度的明显差异。另外,IE8 中的 JSFiddle 可能很难渲染该示例。
http://jsfiddle.net/RaySuave/Q6vex/1/
(jQuery 代码来自本网站的另一篇文章,我做了一些修改来满足我的需要)
我尝试解决该问题的最巧妙的失败尝试是将委托(delegate)分配给固定数量的行,而不是按照如下模式分配给整个表:
$(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
为什么需要这么大的 table ?
我正在将过去手动填充在 Excel 中的大型电子表格转换为基于动态 Web 的网站,用户可以通过单元格单击和箭头键导航来填充 HTML 表格单元格。单元格值将保存在数据库中。所有授权人员都可以通过网站查看这些表格。
我已经完成了所有编码,包括使单元格可编辑的 jQuery、列标题的垂直文本以及通过 Coldfusion 和 MS-SQL 将值写入数据库。
预先感谢您的任何意见或建议。
最佳答案
如果它可以帮助某人搜索缓慢的 ie8 问题:How to force ie8 to repaint after adding a class to a dom element 。如果可能,减少 DOM 上的元素和事件数量,并使用 [some-attr]
选择器而不是 .some-class
选择器。
关于jquery - IE 8 - 慢速点击事件识别 - 100 个可点击的表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044438/