[whatwg] No-DOM HTML

Michel Fortin michel.fortin at michelf.com
Sat Jun 2 05:35:41 PDT 2007

Le 2007-06-02 à 4:39, Anne van Kesteren a écrit :

> On Wed, 30 May 2007 15:22:39 +0200, Michel Fortin  
> <michel.fortin at michelf.com> wrote:
>> 3) Emit events until you reach a point where it may be possible  
>> that some events should be reordered, in which case you build a  
>> local DOM-like tree and wait until you can emit all pending events  
>> with a certainty they don't need to be reordered.
> This is not an option. Consider
>   <b><p>test</p></b>
> versus
>   <b><p>test</b>
> Sending mutation events is probably the only way to go.

I'm not sure I follow; what is the problem here? My suggestion was  
for the parser to keep a temporary tree whenever things are likely to  
be subject to reordering (like this case). If needed the parser just  
mutates its internal temporary tree. When a part of that tree are  
guarantied not to need reordered, then it can send SAX events for  
that part. The idea is effectively to *avoid* mutate events from  
going outside the parser since the application at the other ends, or  
the API in between, doesn't support them.

Note that this doesn't work for parsing full documents since you  
can't append to the root attributes found in misplaced <html> tags  
while not keeping a tree of the whole document. But this could prove  
very useful for parsing HTML snippets to be included in a document  
server-side, just like you can do with innerHTML in the DOM.

Michel Fortin
michel.fortin at michelf.com

More information about the whatwg mailing list