我目前正在开发一个用于自动 PIE 附件的插件。
它遍历所有文档 CSS 样式表,通过 indexOf 检查 CSS3 属性,然后调用 PIE attach 方法以防找到当前选择器的任何内容。
主循环是这样的:
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;
}
}
});
}
这实际上很慢,在 IE8 和 IE7 中的 CSS3 重页上运行长达 2 秒。
问题是,我能以某种方式提高这个循环的性能吗?
PIE.js 实际上优化了重复附件,因此检查 PIE 是否已附加不会做任何事情。
遗憾的是,$.fn.detach 的标准分离技术不适用于 PIE(尽管我没有尝试过香草版本)。
我将非常感谢任何答案。