That is true.... I always suggest using built in for() loop with huge data sets... and people keep ignoring me :)))
---- Read jQuery HowTo Resource - http://jquery-howto.blogspot.com On Fri, Feb 6, 2009 at 8:25 AM, Michael Geary <m...@mg.to> wrote: > > "...there is not much room for improvement left." > > You just know that when you say that, someone will come along with a 20x-40x > improvement. ;-) > > http://mg.to/test/loop1.html > > http://mg.to/test/loop2.html > > Try them in IE, where the performance is the worst and matters the most. > > On my test machine, the first one runs about 6.3 seconds and the second one > about 0.13 seconds. > > -Mike > >> From: Ricardo Tomasi >> >> Concatenating into a string is already much faster than >> appending in each loop, there is not much room for >> improvement left. What you can do improve user experience >> though is split that into a recursive function over a >> setTimeout, so that the browser doesn't freeze and you can >> display a nice loading animation. >> >> >> On Feb 5, 5:03 pm, James <james.gp....@gmail.com> wrote: >> > I need tips on optimizing a large DOM insert to lessen the >> "freeze" on >> > the browser. >> > >> > Scenario: >> > I receive a large amount of JSON 'data' through AJAX from a >> database >> > (sorted the way I want viewed), and loop through them to >> add to a JS >> > string, and insert that chunk of string into a tbody of a >> table. Then, >> > I run a plug-in that formats the table (with pagination, etc.). >> > Simplified sample code: >> > >> > var html = ''; >> > $.each(data, function(i, row) { >> > html += '<tr><td>data from json</td></tr>';}); >> > >> > $("tbody").append(html); >> > $("table").formatTable(); >> > >> > formatTable() requires that the table has to be "completed" >> before it >> > can be executed. >> > Is there any way I can optimize this better? I think I've read >> > somewhere that making a string too long is not good, but I've also >> > read that updating the DOM on each iteration is even worst. >> > >> > Any advice would be appreciated! >> > >