Ticket #8101 (closed enhancement: fixed)
use requestAnimationFrame instead of setInterval for animations, when available
| Reported by: | lrbabe | Owned by: | timmywil |
|---|---|---|---|
| Priority: | blocker | Milestone: | 1.6 |
| Component: | effects | Version: | 1.5 |
| Keywords: | Cc: | jaubourg | |
| Blocking: | Blocked by: |
Description
requestAnimationFrame is a mechanism meant to tell the browser that you wish to perform an animation; this requests that the browser schedule a repaint of the window for the next animation frame.
Full description here: https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame
Benefits:
- let the browser choose the best 'animation tick' rate (instead of our arbitrary 13ms)
- greatly reduce animation CPU usage when switching tab
- helps keep animation synchronized
Full list of claimed benefits here: http://hacks.mozilla.org/2010/08/more-efficient-javascript-animations-with-mozrequestanimationframe/
Currently supported in Firefox, chromium and Chrome dev channel.
Adding it to jQuery is a minor change (7 lines of Javascript).
Change History
comment:2 Changed 2 years ago by lrbabe
And here is the pull request: https://github.com/jquery/jquery/pull/216
comment:3 Changed 2 years ago by jitter
- Priority changed from undecided to low
- Type changed from bug to enhancement
- Component changed from unfiled to effects
comment:4 Changed 2 years ago by snover
- Status changed from new to open
- Milestone 1.next deleted
It’s a very good idea, but probably best implemented in the future when production browser actually support (it instead of only pre-release ones since it could be subject to change) :)
comment:5 Changed 2 years ago by lrbabe
As I said in the pull request, there's absolutely no need to hurry in merging this patch. I wrote it because I had a good idea of how it good fit into jQuery code and I wanted to do some tests.
Of course, merging it doesn't make sense before Firefox4 and Chrome10 are officially out :-)
comment:7 Changed 2 years ago by ajpiano
- Owner set to jaubourg
- Priority changed from low to blocker
- Status changed from open to assigned
- Milestone set to 1.6
comment:10 Changed 2 years ago by timmywil
comment:11 Changed 2 years ago by john
- Status changed from assigned to closed
- Resolution set to fixed
Landed.
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

Oops, this is an enhancement, not a bug sorry. I wish I could fix that by myself.