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

You'd be surprised but in general this

    element.html = "...";
is faster then

    ReactDOM.render(vdom,dom);
at least for initial DOM tree population.

There are many reasons for that. `element.html =` is implemented as single update transaction, JS function call is significantly more expensive then HTML parsing of single element, etc.




This is thanks to how extremely optimized V8 and Chrome is for string manipulation. It is faster in the small cases but doesn't scale to, say, 10000 rows in a table. Then it becomes several orders of magnitude slower than React and virtual DOM. On low memory devices it could crash and never render. This should just be kept in mind when choosing WCs. WCs are perfectly fine for the Settings page in Edge, for example.


"extremely optimized V8"

JS code is always slower than native html parsing code. No matter what.

"10000 rows in a table"

This:

    element.html = 10000 times "<tr>...</tr>";
is by order of magnitude faster than

    element.appendNode( document.createElement("tr") ... ); // ReactJS code

no matter how optimized JS runtime is.

array.forEach(func) is 30 times slower than plain for/at loop. Because of function call.




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

Search: