Open Bug 442348 Opened 14 years ago Updated 3 years ago

[meta] Make setting innerHTML faster


(Core :: DOM: Core & HTML, enhancement, P5)





(Reporter: jruderman, Unassigned)



(Keywords: meta, perf)

Meta-ness split out of bug 386769.
Note: This is a regression, and is NOT platform-specific.  FF3 is much faster at setting innerHTML than FF3.5, on at least MacOSX and Linux.

The longer version:

Setting innerHTML was pretty fast in FF3, but in 3.5 it is extremely sluggish, even compared to IE(!).  I (and many others, I would think) use innerHTML all over, precisely because it is so much faster than direct DOM building in many browsers (IE is particularly slow with DOM).

I'm sorry I don't have enough time or knowledge about FF's code to dive in and look for bottlenecks, but I can say for certain that in my use case, FF3's innerHTML setting was something like an order of magnitude faster than FF3.5's.
(In reply to comment #1)
> FF3's
> innerHTML setting was something like an order of magnitude faster than FF3.5's.
If you have a testcase (hopefully *minimal* testcase) for this, please file
a new bug, attach the testcase, and make that bug block this one.
I was wrong!  In putting together a test case, I found out the slowness was not from setting innerHTML, but from FF3.5's slower rendering of "float"ed elements.  This slowness led me to restyle without float abuse, which is a good thing.

So there might be a legitimate bug about float elements rendering slower than in FF3 (in my case, many stacked "float: left;" elements which are now "display: inline-block") but I don't care enough to file it.

Anyway I fully retract my previous comment; as far as I can tell, FF3.5's innerHTML-setting is fast and lovely, as long as evil floats are avoided.

Move all DOM bugs that haven't been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.