В настоящее время я работаю над плагином для автоматической установки PIE.
Он просматривает все таблицы стилей CSS CSS, проверяет свойства CSS3 с помощью indexOf, а затем вызывает метод привязки PIE в том случае, если он нашел какой-либо для текущего селектора.
Основной цикл выглядит следующим образом:PIE.js низкая производительность
for (var j = 0, length2 = styleSheet.rules.length; j < length2; j++) {
rule = styleSheet.rules[j];
// the replacedProperties is a simple array
// with string values for css properties - border-radius and so on
$.each(replacedProperties, function(index, property) {
if (rule.style.cssText.indexOf(property) !== -1) {
try {
$(rule.selectorText).each(function() {
PIE.attach(this);
});
} catch(e) { }
return false;
}
}
});
}
Это на самом деле довольно медленно, подбегая к 2s на CSS3 тяжелые страницы в IE8 и IE7.
Вопрос в том, можно ли как-то улучшить производительность этого цикла?
PIE.js фактически оптимизирует повторное прикрепление, поэтому проверка того, был ли прикреплен PIE, ничего не сделает.
И стандартная техника отряда $ .fn.detach печально не работает с PIE (хотя я не пробовал версию ванили).
Буду благодарен за любые ответы.
ПОЧЕМУ вы хотите это сделать? PIE делает это автоматически. И я предпочитаю 'pie.htc', это только срабатывает в IE и не является дополнительным запросом для других браузеров. – Christoph
Но он прикрепляется только к PIE.attach, не так ли? – opportunato
Причиной этого является отказ дизайнеров и разработчиков от необходимости добавлять классы для приложения PIE вручную. – opportunato