Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #15384

How to improve performance growing this <li>

From "Richard Maher" <maher_rj@hotspamnotmail.com>
Newsgroups comp.lang.javascript
Subject How to improve performance growing this <li>
Date 2012-08-17 17:41 +0800
Organization HTTP *is* The Box - Let's think outside
Message-ID <k0l3jr$qbu$1@speranza.aioe.org> (permalink)

Show all headers | View raw


Hi,

I'm trying to grow/extend a list <li> using the DOM routines and it performs 
badly. Once your over 100 rows performance degrades and 3000 rows on IE8 
takes 40secs to render and FF just under 10secs. (Yes 3000 is a lot but with 
the scroll-bar on the <div> it is still useful to the user and even if I set 
a max limit on result-set rows I'd still like to improve performance!)

 The data comes from disk, over the network, and de-JSONed in under a second 
so I'd really like to improve/reduce the browser-time.

Please see the code below. Is some form of innerHTML quicker? Build the list 
outside the <div> first? Some LIelement insertNodeChild methods that I don't 
know about?
    var getLOV =        function () {            var lovVintage = 
++currVintage;            var rowCnt = 0;            targetDiv.style.height 
= "0px";            targetDiv.style.visibility = "hidden";            return 
function (rowKey, rowData) {                if (lovVintage != currVintage) 
return;                 var listItem = document.createElement("li"); 
var listData = document.createTextNode(rowData.rTrim()); 
listItem.appendChild(listData);                listItem._key = rowKey; 
suggestList.appendChild(listItem);                rowCnt++; 
if (rowCnt == 1) {                    targetDiv.style.height = "auto"; 
targetDiv.style.visibility = "visible";                }                 if 
(rowCnt == lovMax)                    targetDiv.style.height = 
targetDiv.clientHeight + "px";                 if (targetDiv.clientWidth < 
targetDiv.scrollWidth)                    targetDiv.style.width = 
(targetDiv.scrollWidth                                           + 
(targetDiv.scrollWidth - targetDiv.clientWidth)) + 
          }        }  Cheers Richard Maher 

Back to comp.lang.javascript | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

How to improve performance growing this <li> "Richard Maher" <maher_rj@hotspamnotmail.com> - 2012-08-17 17:41 +0800
  Re: How to improve performance growing this <li> "Richard Maher" <maher_rj@hotspamnotmail.com> - 2012-08-17 17:43 +0800
    Re: How to improve performance growing this <li> Dr.Kral@nyc.rr.com - 2012-08-17 07:27 -0400
      Re: How to improve performance growing this <li> "Richard Maher" <maher_rj@hotspamnotmail.com> - 2012-08-18 06:18 +0800
      Re: How to improve performance growing this <li> Denis McMahon <denismfmcmahon@gmail.com> - 2012-08-17 23:16 +0000
        Re: How to improve performance growing this <li> Denis McMahon <denismfmcmahon@gmail.com> - 2012-08-18 00:33 +0000
          Re: How to improve performance growing this <li> Denis McMahon <denismfmcmahon@gmail.com> - 2012-08-18 11:05 +0000
            Re: How to improve performance growing this <li> SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2012-08-18 16:57 +0200
              Re: How to improve performance growing this <li> Denis McMahon <denismfmcmahon@gmail.com> - 2012-08-18 16:23 +0000
                Re: How to improve performance growing this <li> Dr J R Stockton <reply1233@merlyn.demon.co.uk.invalid> - 2012-08-19 20:16 +0100
                Re: How to improve performance growing this <li> SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2012-08-20 12:29 +0200
                Re: How to improve performance growing this <li> Dr J R Stockton <reply1234@merlyn.demon.co.uk.invalid> - 2012-08-21 20:44 +0100

csiph-web