[Bug 27310] Virtual DOM and DOM diff

https://www.w3.org/Bugs/Public/show_bug.cgi?id=27310

Leo Horie <leohorie@hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |leohorie@hotmail.com

--- Comment #2 from Leo Horie <leohorie@hotmail.com> ---
There's more to diffing than just input states. For example, trashing the whole
DOM via innerHTML destroys application state such as an element having an event
handler, or a variable pointing to a node in the DOM tree.

The overarching reason libraries are using a virtual dom diff strategy is to be
able to apply multiple changes to a DOM tree atomically, while keeping
unchanged nodes intact for performance reasons (as opposed to recreating them
and restoring their states). Other js frameworks' data binding algorithms
(dirty checking, Object.observe + rAF, KVO + rAF, etc) also have this same
fundamental goal.

Non-diff strategies currently require a library to recursively visit every node
in a DOM tree (since there's no way to efficiently compile a list of
js-value-to-DOM-placeholder mappings), plus implement DOM versions of
Array::splice, etc.

A `.diffHTML` whose usage is similar to `.innerHTML`, but with diff semantics,
would be an immediately obvious way for a naive developer to apply js data to
the DOM.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 12 November 2014 16:04:23 UTC