CSS3 PIE: закругленные углы замедляют работу IE9, хотя он и поддерживает их изначально - PullRequest
3 голосов
/ 06 января 2012

Я использую CSS3 PIE , чтобы добавить поддержку закругленных углов в IE7 / 8.Я обнаружил, что когда у меня на странице много элементов со скругленными углами, производительность в IE9 значительно снижается при включении PIE: прокрутка становится запаздывающей, простые эффекты при наведении (например, изменение цвета ссылки) значительно задерживаютсяи т. д.

Но согласно собственной документации PIE, PIE "ничего не делает" в IE9, если браузер изначально поддерживает конкретную функцию CSS3, которую вы используете.Теоретически, если я использую только border-radius (который поддерживает IE9), включение PIE не должно влиять на производительность.

Что может быть причиной этого?

Ответы [ 2 ]

2 голосов
/ 07 января 2012

Я добавил -pie-poll: false; ко всем элементам на странице, к которым был применен PIE, и это значительно ускорило IE9 до такой степени, что оно соответствует IE7 / 8. Я считаю, что по умолчанию PIE опрашивает все элементы каждые 250 мс для обновления; установка -pie-poll в false предотвращает какие-либо обновления до тех пор, пока элемент не будет визуализирован и / или не взаимодействует с.

Это все еще не объясняет , почему PIE опрашивает элементы в IE9, которые не используют какие-либо не встроенные функции CSS3, но это решает проблему.

0 голосов
/ 06 января 2012

Попробуйте использовать условные комментарии, чтобы IE9 даже не загружал код.

<!--[if lte IE 8]>
  // CSS3 pie scripts
<![endif]-->
...