Bug Tracker

Opened 10 years ago

Last modified 9 years ago

#8921 closed enhancement

jQuery private data should — at Version 6

Reported by: gnarf Owned by: gnarf
Priority: blocker Milestone: 1.7
Component: data Version: git
Keywords: 1.7-discuss Cc:
Blocked by: Blocking:

Description (last modified by gnarf)

It seems that the "private" data is ALWAYS stored on the .data(jQuery.expando) - For "objects" where the deletion of the object should also delete its caches this makes some sense.

In the realm of nodes however, I think we should store these "private" members in a separate (private) cache so that they don't pollute the object returned by $.fn.data()

Change History (6)

comment:1 Changed 10 years ago by gnarf

Component: unfileddata
Owner: set to gnarf
Status: newassigned

comment:2 Changed 10 years ago by john

Keywords: 1.7-discuss added

Nominating ticket for 1.7 discussion.

comment:3 Changed 10 years ago by Rick Waldron

Description: modified (diff)

+0, Duplicates #8792

comment:4 Changed 10 years ago by jaubourg

+1, I know the code would probably grow (I'm not so sure but heh) but I think it makes a lot of sense

comment:5 Changed 10 years ago by timmywil

-1, use case where this is a problem?

comment:6 Changed 10 years ago by gnarf

Description: modified (diff)

The reason I ran into the issue in the first place was that I changed the .data() behavior to store a flag in private data stopping it from scanning all the data- attribs more than once. Then a bunch of unit tests broke becuase it was using the jQuery.expando key on the .data() -- Basically, anytime you wanted to for ... in the .data() you're going to need to "ignore" the "private" data....

Note: See TracTickets for help on using tickets.