Ticket #10463 (closed enhancement: patchwelcome)
RemoveAttr should check if attribute exist (when it's possible) before remove it
| Reported by: | markel | Owned by: | markel |
|---|---|---|---|
| Priority: | low | Milestone: | None |
| Component: | attributes | Version: | 1.7b1 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
You already have similar behavior in removeClass method, without it you would got something like this -- http://jsperf.com/removeclass-without-check-for-classname-attr
Of course in removeClass that check needed for other reasons too, but in some cases it will improve performance for removeAttr.
Fast -- http://jsperf.com/removeattr-with-check-for-attr
Less faster -- http://jsperf.com/removeattr-with-check-for-attr-2
Equally fast or little bit slower -- http://jsperf.com/removeattr-with-check-for-attr-3
Pull request -- https://github.com/jquery/jquery/pull/538
Change History
comment:1 Changed 21 months ago by rwaldron
- Owner set to markel
- Priority changed from undecided to low
- Status changed from new to pending
- Component changed from unfiled to attributes
comment:2 follow-up: ↓ 3 Changed 21 months ago by markel
- Status changed from pending to new
First show how speed will improve without attributes, is no need for attribute to exist -- its hole point Second shows if one attribute exist and another is not, its add only one attribute every time Third remove and immediately add the same attribute, so every time its will remove attribute
Please look more closely, they not bogus.
comment:3 in reply to: ↑ 2 Changed 21 months ago by rwaldron
I think you missed my edit...
Replying to markel:
First show how speed will improve without attributes, is no need for attribute to exist -- its hole point Second shows if one attribute exist and another is not, its add only one attribute every time Third remove and immediately add the same attribute, so every time its will remove attribute
Please look more closely, they not bogus.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

Those perfs are bogus because the attribute doesn't exist after the first removal.