Hi Kevin,

Yes, there are problems with my innerHTML versus DOM test. However,
using Array join() to concat the strings is actually much faster than
using += over and over again, so that's not one of them. The test
isn't perfect, but it has been my experience that creating a DOM
fragment and attaching nodes to it, then attaching the whole lot to
the DOM tree is, for all practical purposes, as fast as innerHTML.
Personally, I almost always use innerHTML these days for the sake of
convenience.

Regards,
-Andrew


On Dec 23, 11:22 pm, toriaezunama <[email protected]> wrote:
> Having just read this
>    http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html
> article and taking a look at the code from the original article I have
> feeling that the results are incorrect.
>
> I had noticed when running the tests that although the DOM test with
> 1000 runs reported 87ms, the time from pressing the button to start
> the test and the results being shown was more in the order of 4
> seconds. I think this article explains why.
>
> Right now i don't have access to my iphone or mac so cannot verify any
> of this but thought this might be of interest
> Cheers
>
> On Dec 22, 4:20 pm, Kelvin Wu <[email protected]> wrote:
>
>
>
> > Sorry I must correct myself, I just took a look at its test code, the
> > innerhtml test code is in a unusual or extreme way, it pushes strings into
> > array, then join array. In fact, in the real world, innerHTML is moe often
> > used to concatenate a string by something like innerHTML += "xxx"; re-write
> > the test code by this way, the result is much much faster than DOM.
>
> > On 2009-12-23, Kelvin Wu <[email protected]> wrote:
>
> > > thanks for the link, i tested it too, on nokia e71, which is webkit engine
> > > too, the innerhtml crashed nokia's browser... that completely overturned 
> > > my
> > > previous thought.
>
> > > On 2009-12-22, toriaezunama <[email protected]> wrote:
>
> > >> This site has a benchmark comparing the use of innerHTML vs DOM
> > >> manipulation
> > >>http://andrew.hedges.name/experiments/innerhtml/
>
> > >> I got the following results on an iPodTouch
> > >>                  # of times     time ms
> > >> innerHTML         10                     32
> > >>                  100           2090
> > >>                  1000          Took too long to run
> > >> DOM               10                    1
> > >>                  100                   12
> > >>                  1000          87
>
> > >> Although the test isn't perfect - for example: every created div is
> > >> the same. Not a very real world situation - the results do prove
> > >> interesting.
>
> > >> Hope this helps
>
> > >> On Dec 22, 3:02 am, Kelvin Wu <[email protected]> wrote:
> > >> > Hi,
>
> > >> > A little bit off tipoc, not related to iUI but I am thinking of the
> > >> question
> > >> > about Javascript performance, especially on mobile phone.
>
> > >> > To write HTML code in your Javascript, you can write DOM directly such
> > >> as:
>
> > >> > var cellTitle = document.createElement("td");
> > >> > cell.className = "TableCell3";
> > >> > var labelTitle = document.createElement("lable");
> > >> > labelTitle.className = "LabelTitle";
> > >> > labelTitle.innerHTML = title;
> > >> > cellTitle.appendChild(labelTitle);
> > >> > rowTitle.appendChild(cellTitle);
>
> > >> > Or simply filling in innerHTML:
>
> > >> > root.innerHTML += "<td class=TableCell3><lable class=LabelTitle>" +
> > >> title +
> > >> > "</lable></td>";
>
> > >> > The above two work exactly same. The first one looks more 
> > >> > "professional"
> > >> > while I personally feel that the second one could be much faster and
> > >> less
> > >> > CPU usage (less battery consumption), when you have a complicated HTML
> > >> page,
> > >> > you may need to carefully write hundreds of lines for DOM objects or,
> > >> just
> > >> > copy and paste HTML code to innerHTML...
>
> > >> > So my question is, is that true, using innerHTML is generally faster
> > >> than
> > >> > creating DOM?
>
> > >> > --
>
> > >> > Sent from my mobile device. Ignore the typos unless they're funny.
>
> > >> --
>
> > >> You received this message because you are subscribed to the Google Groups
> > >> "iPhoneWebDev" group.
> > >> To post to this group, send email to [email protected].
> > >> To unsubscribe from this group, send email to
> > >> [email protected]<iphonewebdev%2bunsubscr...@google
> > >>  groups.com>
> > >> .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/iphonewebdev?hl=en.
>
> > > --
>
> > > Sent from my mobile device. Ignore the typos unless they're funny.
>
> > --
>
> > Sent from my mobile device. Ignore the typos unless they're funny.

--

You received this message because you are subscribed to the Google Groups 
"iPhoneWebDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/iphonewebdev?hl=en.


Reply via email to