4 ms·
I sort of see where you are coming from, but I can't see how it could be done any differently in an idealised system. If you change the elements in a set, you
by richthegeek 11y ago
I sort of see where you are coming from, but I can't see how it could be done any differently in an idealised system.
If you change the elements in a set, you need to re-evaluate how that set is rendered. Wether you leave it to the elements to decide if they are to be altered, or have that logic in the set-handling code, the book-keeping (and related CPU time) still needs to occur?
Either way, the proof is in the pudding: React is so insanely faster for this specific case than all other approaches.
- omphalos 11y agoWhat should happen is that we do incremental computation, sort of like what's described here [1]. You ought to be able to declaratively specify that such-and-such collection maps to such-and-such elements. If you change just one element in the collection, change tracking built into an incremental computation framework should cause that one element to update. Logically, there's really no need to review the entire collection if just one element changes. Certainly the Virtual DOM is one way to let you declaratively write to the DOM and not worry about change tracking yourself. But it's not the most efficient way. Unfortunately this sort of thing has never been implemented in JavaScript (that I can find) so currently the Virtual DOM is probably our least worst choice, at the moment. [1] https://blogs.janestreet.com/introducing-incremental/ https://blogs.janestreet.com/introducing-incremental/
- amelius 11y agoYes, this is also the approach I was thinking about. Perhaps it is time somebody at Facebook gets the chance to develop the javascript variant of this technique, as it is a far more "correct" way of approaching the problem, from a Computer Science standpoint.