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.

Reply via email to