jquery - IE 8 - 慢速点击事件识别 - 100 个可点击的表格单元格

标签 jquery internet-explorer-8 delegates cell html-table

我遇到的问题是客户大多都使用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/

相关文章:

javascript - 在 Shopify 中获取博客文章的图像

javascript - 在 Javascript 循环中分配变量

javascript - 为什么这个 if/else 在 jquery 中对我不起作用?

css - 文本模糊的最佳解决方案 + 所有浏览器支持 - 后备想法?

ios - 将数据与 segue 一起传递

ios - 让应用程序在终止时保存数据

C# 使用具有委托(delegate)参数的函数启动线程

django - 我如何将 django dajax 框架与 jquery ajax 事件一起使用

IE 的 JavaScript 问题

html - 背景图像在 IE 8 中的位置不正确