Ускорение закругленных углов в IE 9 - PullRequest
3 голосов
/ 18 января 2012

У меня есть пара div на странице с относительно большим количеством контента и применено свойство css border-radius (включая версии префикса для конкретного поставщика) И Firefox, и Chrome могут справиться с этим без каких-либо проблем, но в IE 9 это мучительно медленно. Просто отключив ее, можно сделать страницу как минимум в 5 раз быстрее.

Есть ли способ ускорить его в IE 9, используя какой-то обходной / альтернативный подход. Хотя я знаю, что, возможно, мог бы использовать фоновые изображения и дополнительную разметку для имитации старого стиля, но я ищу менее навязчивое решение.

1 Ответ

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

Как уже упоминал @Parzifal, есть некоторые хорошо известные обходные пути для создания круглых углов в IE без border-radius.Они основаны на присоединении некоторого кода JavaScript (через поведение или выражение) к определенным классам.Этот код добавляет ли некоторые дополнительные элементы DOM или добавляет разметку VML.

Этот подход рекомендуется в том смысле, что на самом деле не существует более дешевых способов динамического создания закругленных углов без использования изображений.Хотя этот подход требует тщательного тестирования и делает дальнейшую поддержку и разработку, по крайней мере, немного более болезненной.

Я не знаю, как именно вы выполняете профилирование и какой этап является узким местом.У меня закругленные углы замедляются, скажем, и при прокрутке, я не знаю, что посоветовать.

Если проблема только в загрузке страницы - вы можете загрузить все как обычно, но без закруглений.Затем в javascript вы можете прослушать DOMContentLoaded и указать существующие правила CSS с закругленными углами.

Скажем, у вас есть предопределенный класс с закругленными углами, код будет выглядеть так:

$('.there-should-be-rounded-corners').addClass('and-here-come-rounded-corners');

И еще раз изучите вопрос.Не уверен на 100%, что это поможет, но хотя бы стоит попробовать.

...