Why is innerHTML = “” slow in Firefox

前端 未结 2 1452
猫巷女王i
猫巷女王i 2021-02-09 15:56

I am testing the speed of different methods to dynamically add html elements to the DOM. I\'ve build a tester here (code is working version, so pretty sloppy). The results are (

2条回答
  •  谎友^
    谎友^ (楼主)
    2021-02-09 16:18

    While I am not sure about the innerHTML = "" you left out one possibly fast appoach using DocumentFragments for inserting into the DOM: As John Resig shows.

    As Ólafur Waage already mentioned, even though innerHTML is faster in a lot of situations since it's not part of any W3C standard, quirks are far more likely to be introduced then if they were. Not to say innerHTML is not a defacto standard within modern browsers.

    This blog post seems to indicate that Firefox spends a lot of time cleaning up after itself when using innerHTML to remove elements.

    In some browsers (most notably, Firefox), although innerHTML is generally much faster than DOM methods, it spends a disproportionate amount of time clearing out existing elements vs. creating new ones. Knowing this, we can combine the speed of destroying elements by removing their parent using the standard DOM methods with creating new elements using innerHTML.

提交回复
热议问题