Ok got it and understood that the conventional javascript would be faster than jQuery in this case. But what I have seen is that just by pressing SHIFT+END, all the options in the listbox get selected. Is there some way we can fire that event to select all options.
On Nov 20, 1:10 pm, "Michael Geary" <[EMAIL PROTECTED]> wrote: > It's no surprise that the jQuery code is slower: you can always outperform > jQuery with a custom-tuned loop. After all, jQuery has to do everything that > your custom loop does, plus much more. For one thing, jQuery has to first > build an array of all the items and then traverse that array. Your custom > code doesn't have to build an array at all. > > You may be able to pick up a tiny bit more speed in your loop. First, make > sure to "var" your "i" variable. If you don't "var" it, "i" is actually a > property of the window object, and if this code is inside a function, that > will make it slower to access the variable. > > Also, don't look up myListBox.length every time through the loop; you can > either look it up once at the beginning or not at all. > > I would try these three variations on your loop and see if any of them comes > up faster: > > for( var i = 0, n = myListBox.length; i < n; ) > myListBox[i++].selected = true; > > for( var i = myListBox.length; i > 0; ) > myListBox[--i].selected = true; > > for( var i = -1, option; option = myListBox[++i]; ) > option.selected = true; > > I'll be curious to know the result. > > My guess is that one of those may be a bit faster, but still too slow to be > acceptable. If that's the case, there may be nothing to be done for it > except to do the selecting in batches of, say, 1000 elements with a short > timeout between each batch. That way the browser will remain responsive > while you run the loop. > > -Mike > > > From: JQueryProgrammer > > > I have been using jQuery for quite some time now. For one of > > my projects, I needed to select all the options in the > > listbox which were 10,000+. I tried to do a comparison > > between using jQuery and conventional javascript and here are > > my findings: > > > 1. With jQuery: > > Code: $("#myListBox *").attr("selected","selected"); > > Time taken: 70000+ milliseconds > > > 2. With JavaScript: > > Code: for( i=0; i < myListBox.length; i++) { myListBox > > [i].selected = true; } > > Time taken: 21000+ milliseconds > > > Can anyone provide with some better code or justify why is > > jQuery taking so much time.