I don't think that DOM cache is needed.
$foo = $('.foo') is much more logic and reliable. And doesn't add code
to jQuery core.

I say that jQuery select can be at least 4 times faster then it is
now. I have rewritten jQuery selector with different regular
expression approach and have great speed results (not shore about code
size because I'm not finished yet).

On 8/9/06, Michael Geary <[EMAIL PROTECTED]> wrote:
> > From: Dave Methvin
> >
> > The implementation is pretty straightforward, but the
> > implications are tough to handle. You'd need to store both
> > the incoming selector string (assume you don't have to cache
> > incoming DOM references) and the context. Then you'd need
> > some way to invalidate the cache; I don't think there's any
> > workable way that jQuery can figure out whether its cache is
> > valid or not.
>
> It sounded like the OP was talking about a DOM element cache, which could
> speed up queries even when they aren't identical. But either way there are
> some really tricky issues here.
>
> > Judging from the code that is posted on the list, I think we
> > could improve performance by encouraging people to use
> > chaining and/or keep their own "cache" in a local or global
> > variable when it's warranted and safe.
>
> Indeed, if you're talking about the same query repeated when the underlying
> DOM hasn't changed, nothing beats simply caching the jQuery result in your
> own variable. That's faster than any cache could ever be.
>
> This is the kind of code you're talking about:
>
>    function turtle() {
>       for( var i = 0;  i < 42;  i++ ) {
>          $('.foo').append( 'Line ' + i );
>       }
>    }
>
> It's trivial to speed this up considerably:
>
>    function hare() {
>       var $foo = $('.foo');
>       for( var i = 0;  i < 42;  i++ ) {
>          $foo.append( 'Line ' + i );
>       }
>    }
>
> Note the use of the leading $ in the variable name to indicate that $foo is
> a jQuery object. That's a convention I've found to be very helpful,
> especially when I need to reference both a straight DOM element and the
> corresponding jQuery object. Then I'd use foo for the element itself and
> $foo for the jQuery wrapper. This makes it easy to remember which one is
> which.
>
> -Mike
>
>
> _______________________________________________
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
>

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to