Hacker News new | past | comments | ask | show | jobs | submit login

Interesting 'innerHTML' is mentioned as a crappy native equivalent. In theory, I agree. But last time I compared innerHTML vs DOM fragments, innerHTML was much much faster across the browsers I tried (this was just before JITs for JS became common place). The tradeoff it seems is the browsers native HTML parser and serialization vs holding a DOM tree in JS, and for large sets at least, innerHTML won handily.



That has been my experience as well, in fact, I believe the native DocumentFragment code should be slower than the jQuery innerHTML-based code.


Is not crappy because is slower, is crappy because it destroys all the eventListeners and custom properties of all their childNodes.


It's crappy because it's not just slow, it manages to freeze Firefox 22 on a 2,8GHz CPU.

http://jsperf.com/leebrimelow-native-methods-jquery-dom


At least we agree is crappy. BTW sorry for ruining your perfs, I really wanted to test some few things.


Okay. Revision 9 adds code to remove the inserted elements, to put every test on equal footing. Is the practical equivalent yours? Because it hits a sweet spot.


The one called "MUCH MORE PRACTIVAL native equivalent" is a mistake, it doesn't do anything. I didn't know documentFragment lacks the innerHTML property so is not doing any parsing like the others.


Ah, that explains it. I can't submit Firefox results, though. The crappy native equivalent just locks up after throwing several "unresponsive script" warnings.


By using innerHTML you lose event bindings of all elements in the container you're appending data to, and the state of inputs.


innerHTML isn't W3C compliant. Why are you using it in the first place?





Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: