3

我正在使用CSS3 PIE为 IE7/8 添加对圆角的支持。我发现当页面上有很多带有圆角的元素时,启用 PIE 后IE9的性能会显着下降:滚动变得迟钝,简单的悬停效果(如链接颜色变化)会显着延迟,等等。

但是根据 PIE 自己的文档,如果浏览器本身支持您正在使用的特定 CSS3 功能,那么 PIE 在 IE9 中“什么都不做”。那么理论上,如果我只使用边界半径(IE9 支持),启用 PIE 应该对性能没有影响。

这可能是什么原因造成的?

4

2 回答 2

2

我添加-pie-poll: false;了页面上所有应用了 PIE 的元素,这大大加快了 IE9 的速度,达到了与 IE7/8 相当的程度。我相信默认情况下,PIE 每 250 毫秒轮询一次所有元素以进行更新;设置-pie-pollfalse防止在元素被渲染和/或与之交互之前发生任何更新。

这仍然不能解释为什么PIE 会在 IE9 中轮询不使用任何非原生 CSS3 功能的元素,但它确实解决了问题。

于 2012-01-06T21:06:07.430 回答
0

尝试使用条件注释,这样 IE9 甚至不会加载代码。

<!--[if lte IE 8]>
  // CSS3 pie scripts
<![endif]-->
于 2012-01-06T15:21:14.043 回答