Hi, Boris-

Boris Zbarsky wrote (on 3/28/08 1:41 PM):
Doug Schepers wrote:
Speaking as an author of many SVG Webapps and a contributor to several SVG script libs, knowing the number of child elements is a really common need; index-based access is less needed, and can be effected by other means.

I would just like to point out, from my perspective as an implementor, that implementing this as a nodelist would have taken all of 15 minutes of programming time. Implementing the specification as written, while having acceptable performance on traversal, will take a good bit more work, and either a lot more complexity or additional space used by every single Element in the DOM.

I realize that this is due to the fact that I'm working with an implementation that already has a generic NodeList implementation... Nevertheless, the issue is there.

I have the feeling that I already mentioned this in the past, so I assume it's been considered in making the decision that the linked-list-only API is the one to use, but I wanted to mention it in case I hadn't before.

Yes, you did, and I pointed out that not all implementations have existing nodeList implementations, and that one of the design goals was to work with mobile UAs that don't already support nodeList (live or static). [1]

After some discussion in the same thread, I then put the direct question to the list as to whether or not to include a nodeList [2], and the only reply I got was from Maciej, in support of removing it. [3]

This was last April, and the spec has not changed appreciably since then, so I assumed the issue was closed, and that you appreciated the design goal.


P.S. Oddly enough, in typical DOM authoring authors use index-based of childNodes a _lot_ more than the linked-list accessors.... Has anyone looked into why?

My guess is that undifferentiated navigation to any node type is simply not that useful, which is why Element Traversal was made. Also, without knowing the number of child nodes of the target type, there are some pre-processing operations that aren't easily done, so again it's less useful; by the time you bother getting a nodeList to find out the number of children, you may as well iterate through the list.

Also, it may be that casual authors simply don't know about those accessors, since looping structures are themselves so widely used.


[1] http://lists.w3.org/Archives/Public/public-webapi/2007Apr/0009.html
[2] http://lists.w3.org/Archives/Public/public-webapi/2007Apr/0012.html
[3] http://lists.w3.org/Archives/Public/public-webapi/2007Apr/0013.html

Regards-
-Doug Schepers
W3C Team Contact, SVG, CDF, and WebAPI

Reply via email to