Leonard Cohen (英語)のアルバムをなくしてしまい、危うく発狂するところだった。幸い見つかったので正気を保っています(無関係)。
どうやら、Mozillaにて要素生成処理が異常に遅くなるのは、絶対配置(position : absolute
, position : fixed
)が大きく関係しているらしい。例えば、div等の親要素を生成した直後にstyleプロパティを弄って絶対配置にすると、この問題が起きる。
var nDiv = document.createElement('DIV'); nDiv.style.position = 'fixed';
ところが、子要素を全て生成し終わってから、同様の処理をした場合には、この問題は起らなかった。
var nDiv = document.createElement('DIV'); document.body.appendChild(nDiv); var nDL = document.createElement('DL'); nDiv.appendChild(nDL); -------------------------- nDiv.style.position = 'fixed';
お世辞にも速い、とは言えないものの、これでサイトマップ機能はMozillaでも実用レベルになった。と思う。
position : fixed
の宿命と思って諦めるしかないような。
そういうわけで、サイトマップ機能をMozilla対応にしてみました。
複数の要素を生成する場合、全ての生成が終ってからレンダリングを開始する(そうでなければ困るのだが)。