为啥 IE8 中的 CSS Hover 很慢?

Posted

技术标签:

【中文标题】为啥 IE8 中的 CSS Hover 很慢?【英文标题】:Why is CSS Hover Slow In IE8?为什么 IE8 中的 CSS Hover 很慢? 【发布时间】:2011-04-12 14:30:39 【问题描述】:

我有一个带有 jstree 和/或 jqgrid 的页面 - 我用哪一个来表明我的观点并不重要,因为我怀疑它是 IE8 中的任何悬停效果......回到点:

当鼠标悬停在 <a> 标签上时,background-color 会随 CSS 进行更改。在包括 IE7 在内的所有浏览器中(虽然速度稍慢 - 我猜是 +-300 毫秒),后台更改没有延迟,但在 IE8 中,延迟可以达到甚至超过 1 秒。

    我不会打电话给任何额外的onmouseover,onmouseout等。 这些元素。

    我已关闭所有动画 jQuery.

    隐藏页面上的所有元素 除了 jstree(例如) 确实使悬停效果略微 更快,但什么都没有 很明显。

    使用 IE8 调试器分析器 没有显示任何显着 开销,只有在正常时间 jQuery sizzle.js 很明显

    这毕竟是文档元素 已加载并且没有额外的调用 制作到服务器,没有新图像 下载等等。

任何关于改进这一点的建议,例如:性能测试、标签选择等,将不胜感激。

问候, 拜伦·科布。

附:这个question 之前由 bobmoff 提出的问题并没有真正回答任何问题。

编辑:

进一步的测试表明,jquery .hover() 和绑定 mouseenter 和 mouseleave 在 IE8 中也同样慢。例如 - 我已经删除了页面上除了我的 jqgrid 之外的所有内容,并且悬停效果仍然很慢(尽管观察到略有增加)

在兼容模式下运行 IE8 也解决了这个缓慢的悬停问题。

【问题讨论】:

我认为向 MS 开放的问题... 你能提供一个我们可以玩的jsfiddle吗?还有你最后是怎么解决的? 【参考方案1】:

不是完全重复,因此没有被标记为这样,但这篇 *** 文章“Mouseover/hover effect slow on IE8”可能会对您有所帮助。

我还在这里找到了更多帮助:http://boardreader.com/thread/javascript_CSS_IE8_problem_MouseOver_ver_bd40Xr0fw.html

【讨论】:

以上是关于为啥 IE8 中的 CSS Hover 很慢?的主要内容,如果未能解决你的问题,请参考以下文章

Git pull 很慢……为啥?

为啥asp.net响应很慢

为啥在 C# 中的二维数组中按列写入速度很慢

为啥使用 CollectionViewSource.SortDescriptions 排序很慢?

为啥进程的内存分配很慢并且可以更快?

为啥说JavaScript中的DOM操作很慢