Sorry I´m in dependency on Analysis of Algorithm for second time LOL ps: is true.
On 5/24/07, Rob Desbois <[EMAIL PROTECTED]> wrote:
No, because then people might think it was just because of jQuery that a looped function call is slow. The avoidance of repeated unnecessary function calling inside loops is something that any programmer in any language should look at and immediately say "Yuck!" :-D --rob On 5/24/07, Jean Nascimento <[EMAIL PROTECTED]> wrote: > > I´m a javascript nooba, so thanks for the tip :D > > On 5/23/07, Gordon <[EMAIL PROTECTED]> wrote: > > > > It is one of those blindingly obvious things but also easy to forget. > > I suppose the tip should be "if you find $ in a loop, find a way to > > cache it". > > > > On May 23, 4:43 pm, "Rob Desbois" <[EMAIL PROTECTED] > wrote: > > > Absolutely, no loop should call a determinate function with the same > > > argument(s) on every iteration. > > > In other words, if a function is called in a loop and it will return the > > > same value for each iteration take it OUT of the loop. > > > > > > Also Gordon, remember that no more memory is used here - in the slow version > > > the result from .children() has to be cached somewhere in a temporary > > > variable internally (I would guess, my knowledge of JS internals is > > > minimal). Making the temporary variable explicit will use no additional > > > memory. > > > > > > --rob > > > > > > On 5/23/07, Gordon <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > > This one's probably blindingly obvious to anyone with any significant > > > > programming experience in javascript, but it's an easy one to forget > > > > too. > > > > > > > Consider this code: > > > > > > > function fast () > > > > { > > > > var myDivItems = $('#myDiv').children(); > > > > for (x = 0; x < 1000; x++) > > > > { > > > > myDivItems.length; > > > > } > > > > } > > > > function slow () > > > > { > > > > for (x = 0; x < 1000; x++) > > > > { > > > > $('#myDiv').children().length; > > > > } > > > > } > > > > > > > Both are functionally identical, but try profiling their run times in > > > > Firebug! > > > > > > > Here's the average run times I got from running each function 5 times > > > > > > > fast: 3.125ms > > > > slow: 3146.875ms > > > > > > > One more line of code, a bit more memory used, but huge win in loops. > > > > > > -- > > > Rob Desbois > > > Eml: [EMAIL PROTECTED] > > > Tel: 01452 760631 > > > Mob: 07946 705987 > > > "There's a whale there's a whale there's a whale fish" he cried, and the > > > whale was in full view. > > > ...Then ooh welcome. Ahhh. Ooh mug welcome. > > > > > > > -- > > []´s Jean > www.suissa.info > > Ethereal Agency > www.etherealagency.com > -- Rob Desbois Eml: [EMAIL PROTECTED] Tel: 01452 760631 Mob: 07946 705987 "There's a whale there's a whale there's a whale fish" he cried, and the whale was in full view. ...Then ooh welcome. Ahhh. Ooh mug welcome.
-- []´s Jean www.suissa.info Ethereal Agency www.etherealagency.com