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.
