Thanks for putting it all together, Josh!

On Mar 2, 1:43 pm, Josh Powell <seas...@gmail.com> wrote:
> Hey guys,
>
> This thread inspired me to write a blog article
>
> http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-cor...
>
> I did some testing of the += and array.join methods of long string
> concatenation.  Interesting stuff!
>
> It turns out that += and array.join are browser dependent in their
> execution time, although one method is quicker in a majority of
> current and next gen browsers.
>
> On Feb 8, 11:20 am, Kevin Dalman <kevin.dal...@gmail.com> wrote:
>
> > Rick, based on what I've learned from testing, you have another option
> > now...
>
> > Here is a modified version of Mike's code - without generating the
> > table.
>
> >     function populateDutyTable(response) {
>
> >         var currentDay = '';
> >         var rows = response.QGETDUTYSCHEDULE.DATA;
> >         var out = [], o = -1;
>
> >         out[++o] = '<tbody>'; // CHANGED
>
> >         for( var row, i = -1;  row = rows[++i]; ) {
>
> >             var day = row[1];
> >             if( currentDay != day ) {
> >                 currentDay = day;
> >                 out[++o] = '<tr><td class="cell-day">';
> >                 out[++o] = row[1];
> >                 out[++o] = '</td><td class="cell-date">';
> >                 out[++o] = row[2];
> >                 out[++o] = '</td><td class="cell-blank"
> > colspan="5">&nbsp;</td></tr>';
> >             }
>
> >             out[++o] = '<tr><td class="cell-blank-day">&nbsp;</td><td
> > class="cell-blank-date">&nbsp;</td><td class="cell-am-am">';
> >             out[++o] = row[3];
> >             out[++o] = '</td><td class="cell-position">';
> >             out[++o] = row[4];
> >             out[++o] = '</td><td colspan="3">Cell Content</td></tr>';
> >         }
>
> >         out[++o] = '</tbody>'; // CHANGED
>
> >         $('#scheduleBody').append( out.join('') ); // CHANGED
> >     }
>
> > A container around the table is no longer required because wrapping
> > the rows in a tbody achieves the same performance as wrapping them in
> > a table. Plus, you could now add rows without regenerating the entire
> > table. This provides more options with no penalty. For example, now
> > you could hard-code the table with column headers - for example...
>
> > <table id="scheduleBody">
> >    <thead>
> >       <tr>
> >          <th>ID</th>
> >          <th>Day</th>
> >          <th>Date</th>
> >          <th>Name</th>
> >       </tr>
> >    </thead>
> > </table>
>
> > This is cleaner and faster than adding column headers inside your
> > Javascript loop.
>
> > I suggest you try both methods, Rick. Use a timer (like MIike's sample
> > pages) to confirm whether both are equally fast. Based on my tests,
> > you may find appending to the table even faster, with cleaner markup
> > as a bonus.
>
> > Ciao,
>
> > /Kevin
>
> > On Feb 7, 3:20 pm, "Rick Faircloth" <r...@whitestonemedia.com> wrote:
>
> > > Hey, thanks Michael for taking the time to provide the
> > > explanation and the re-write.  I'll put this into place
> > > and see how it performs.  I'm sure it'll be *much* better!
>
> > > Rick
>
>

Reply via email to