W3C home > Mailing lists > Public > public-webapi@w3.org > April 2008

Re: [Element Traversal LC] access to element by index

From: Henri Sivonen <hsivonen@iki.fi>
Date: Wed, 2 Apr 2008 16:50:39 +0300
Cc: Jonas Sicking <jonas@sicking.cc>, Boris Zbarsky <bzbarsky@mit.edu>
Message-Id: <2E847BD0-E4E7-490C-8156-AF0A4049B6DE@iki.fi>
To: "Web APIs WG (public)" <public-webapi@w3.org>

On Apr 2, 2008, at 16:21, Henri Sivonen wrote:
> It was a problem for me when I tried to walk the HTML5 spec in  
> Firefox 1.5 using iterative traversal with firstChild/nextSibling/ 
> parentNode. Firefox 1.5 performed a *lot* worse than the then- 
> current versions of Opera and Safari. And the spec was a lot smaller  
> back then, too. :-)

It turns out that I still have the test case around:

I think it is perfectly reasonable to expect this algorithm to be the  
fast way to walk when you see a tree with first child, sibling and  
parent references:

function walk(node) {
   var current = node;
   var next = null;
   for (;;) {
     if (next = current.firstChild) {
        current = next;
     for (;;) {
       if (next = current.nextSibling) {
         current = next;
       current = current.parentNode;
       if (current == node) {

With Element Traversal, I think it would be reasonable to expect the  
above algorithm to be the fast way to walk the elements when s/ 
firstChild/firstElementChild/ and s/nextSibling/nextElementSibling/.

Henri Sivonen
Received on Wednesday, 2 April 2008 13:51:26 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:10:00 UTC