Why is this javascript function so slow on Firefox?

Posted by macrael on Stack Overflow See other posts from Stack Overflow or by macrael
Published on 2010-12-31T18:54:37Z Indexed on 2010/12/31 19:54 UTC
Read the original article Hit count: 156

Filed under:
|
|

This function was adapted from the website: 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;
}

I am running this function as part of another function on window.resize, and it is causing performance problems on Firefox 3.6 that do not exist on current Safari or Chrome. Firefox's profiler says I'm spending the most time in this function and I'm curious as to why that is.

Is there a way to get the em size in javascript without doing all this work? I would like to recalculate the size on resize incase the user has changed it.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about Performance