About a month ago, Firefox 8 zaimplementował metodę insertAdjacentHTML, która została dodana do IE4 wraz z innerHTML. Zgodnie z testem porównawczym this wstawianie sąsiedniego HTMLa jest zwykle o rząd wielkości szybsze niż innerHTML.W jaki sposób insertAdjacentHTML jest o wiele szybszy od innerHTML?
Zakładam, że oba wywołują ten sam parser HTML, więc dlaczego ta różnica jest tak dramatyczna? insertAdjacentHTML to proste wywołanie metody, podczas gdy innerHTML to getter/setter i prawdopodobnie jest to trochę zbyteczne, ale nigdy bym tego nie wyobraził.
Należy zauważyć, że użycie 'appendChild' jest znacznie szybsze niż oba. Prawdopodobnie dlatego, że nie jest potrzebny żaden analizator składni. Różnica między 'insertAdjacentHTML' i' innerHTML' wydaje się być nieistotna w porównaniu do 'appendChild'. Jednakże, jeśli potrzebujesz parsować ciąg html, 'appendChild' nie pomoże wiele. Oto szczegółowy JSperf: http://jsperf.com/insertadjacenthtml-perf/28 – oriadam