Skip to content

Commit 9b0534e

Browse files
petehuntzpao
authored andcommitted
ReactRAFBatchingStrategy
This will go in React addons only for now until we figure out `pendingState`.
1 parent eee04b1 commit 9b0534e

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* Copyright 2013-2014 Facebook, Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* @providesModule ReactRAFBatchingStrategy
17+
* @typechecks static-only
18+
*/
19+
20+
"use strict";
21+
22+
var ExecutionEnvironment = require('ExecutionEnvironment');
23+
var ReactUpdates = require('ReactUpdates');
24+
25+
var requestAnimationFrame = require('requestAnimationFrame');
26+
27+
function tick() {
28+
ReactUpdates.flushBatchedUpdates();
29+
requestAnimationFrame(tick);
30+
}
31+
32+
var ReactRAFBatchingStrategy = {
33+
isBatchingUpdates: true,
34+
35+
/**
36+
* Call the provided function in a context within which calls to `setState`
37+
* and friends are batched such that components aren't updated unnecessarily.
38+
*/
39+
batchedUpdates: function(callback, param) {
40+
callback(param);
41+
}
42+
};
43+
44+
if (ExecutionEnvironment.canUseDOM) {
45+
requestAnimationFrame(tick);
46+
}
47+
48+
module.exports = ReactRAFBatchingStrategy;

0 commit comments

Comments
 (0)