我的问题是,客户大多都在使用IE8。由于屏幕上有如此多的元素,IE8很难识别被单击或导航到的单元格。速度是不可接受的,所以我正在寻找提高点击识别速度的方法。我已经安装了一个jQuery分页插件,它让用户能够改变显示的行数,这提高了一些速度,但还不够。
让我问这个问题的是,在使用.delegation()和使用.click()时,点击识别速度没有区别。在IE8中,尽管.delegate应该要快得多。下面的JSFiddle表示我最大的表格,大约有10,000个单元格。它启用了“点击”和箭头键导航,所以你可以看到IE8和火狐/Chrome等浏览器在速度上的明显差异。此外,IE8中的JSFiddle可能很难渲染这个例子。
http://jsfiddle.net/RaySuave/Q6vex/1/
( jQuery代码来自本网站的另一个帖子,我做了几个mod来满足我的需要)
我试图解决的最巧妙的失败尝试是将委托分配给固定数量的行,而不是像下面这样的模式中的整个表:
$(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将值写入数据库。
提前感谢您的任何意见或建议。
发布于 2012-12-11 05:46:28
以防有人搜索慢的ie8问题:How to force ie8 to repaint after adding a class to a dom element。在可能的情况下,减少DOM上的元素和事件的数量,并使用[some-attr]选择器而不是.some-class选择器。
https://stackoverflow.com/questions/12044438
复制相似问题