The mentioned expression returns the requested data or undefined (rtfm
&&).
You code returns id if it is not in the cache, should return
undefined.

On Jul 14, 12:18 am, Ricardo <ricardob...@gmail.com> wrote:
> jQuery.cache[ id ] && jQuery.cache[ id ][ name ] will return true/
> false, not the data. Shouldn't that be
>
> return name && jQuery.cache[ id ] ?
>   jQuery.cache[ id ][ name ] :
>   id;
>
> },
>
> ?
>
> Maybe this is slower than the current code and that's the reason it is
> as it is.
>
> On Jul 12, 10:04 am, Azat Razetdinov <razetdi...@gmail.com> wrote:
>
>
>
> > jQuery.data() creates an entry in the cache for a given element even
> > if the data is only accessed, not stored. As a result, cache gets
> > polluted with empty redundant objects. A small patch would fix the
> > problem:
>
> > Index: data.js
> > ===================================================================
> > --- data.js     (revision 6421)
> > +++ data.js     (working copy)
> > @@ -14,18 +14,19 @@
> >                 if ( !id )
> >                         id = elem[ expando ] = ++uuid;
>
> > -               // Only generate the data cache if we're
> > -               // trying to access or manipulate it
> > -               if ( name && !jQuery.cache[ id ] )
> > -                       jQuery.cache[ id ] = {};
> > +               // Prevent overriding the named cache with undefined values
> > +               if ( data !== undefined ) {
> > +                       // Only generate the data cache if we're
> > +                       // trying to manipulate it
> > +                       if ( !jQuery.cache[ id ] )
> > +                               jQuery.cache[ id ] = {};
>
> > -               // Prevent overriding the named cache with undefined values
> > -               if ( data !== undefined )
> >                         jQuery.cache[ id ][ name ] = data;
> > +               }
>
> >                 // Return the named cache data, or the ID for the element
> >                 return name ?
> > -                       jQuery.cache[ id ][ name ] :
> > +                       jQuery.cache[ id ] && jQuery.cache[ id ][ name ] :
> >                         id;
> >         },
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to