この機能は、Webサイトから適応されました:http://eriwen.com/javascript/measure-ems-for-layout/Firefoxでこのjavascript機能が遅いのはなぜですか?
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上の他の機能の一部として、この機能を実行していますし、それが現在のSafariや上に存在しないのFirefox 3.6でのパフォーマンスの問題を引き起こしていますクロム。 Firefoxのプロファイラは、私がこの機能で最も多くの時間を費やしていると言います。なぜそうなのか不思議です。
この作業をすべて実行せずにjavascriptでemサイズを取得する方法はありますか?私はユーザーがそれを変更したときにサイズを再計算したいと思います。
この関数がwindow.resizeのほかの関数でどのように使われているかを教えてください。 – mauris
@thephpdeveloper私はそれを行うことができますが、それは余計なことだと思います。関数はその関数で1回だけ呼び出され、結果はキャッシュされます。 – macrael
Firefoxにプロファイラがありますか? JavaScript Debugger(Venkman)が組み込まれているのですか? – MatrixFrog