【发布时间】:2011-06-02 02:10:54
【问题描述】:
此功能改编自网站:http://eriwen.com/javascript/measure-ems-for-layout/
function getEmSize(el) {
var tempDiv = document.createElement("div");
tempDiv.style.height = "1em";
el.appendChild(tempDiv);
var emSize = tempDiv.offsetHeight;
el.removeChild(tempDiv);
return emSize;
}
我将这个函数作为 window.resize 上另一个函数的一部分运行,它在 Firefox 3.6 上导致了当前 Safari 或 Chrome 上不存在的性能问题。 Firefox 的分析器说我在这个函数上花费的时间最多,我很好奇为什么会这样。
有没有办法在不做所有这些工作的情况下在 javascript 中获取 em 大小?我想重新计算 resize 的大小,以防用户更改它。
【问题讨论】:
-
你能告诉我们这个函数是如何在window.resize的其他函数中使用的吗?
-
@thephpdeveloper 我可以,但我认为这是多余的。该函数只在该函数中调用一次,结果被缓存。
-
Firefox 有分析器吗?它是内置的还是您在谈论 JavaScript 调试器 (Venkman)?
-
@MatrixFrog 抱歉,FF 没有内置。 Firebug 有一些分析功能。
标签: javascript performance firefox