12345678910111213141516171819202122232425262728293031323334353637 |
- var HOT_COUNT = 800,
- HOT_SPAN = 16;
- var nativeNow = Date.now;
- function shortOut(func) {
- var count = 0,
- lastCalled = 0;
- return function() {
- var stamp = nativeNow(),
- remaining = HOT_SPAN - (stamp - lastCalled);
- lastCalled = stamp;
- if (remaining > 0) {
- if (++count >= HOT_COUNT) {
- return arguments[0];
- }
- } else {
- count = 0;
- }
- return func.apply(undefined, arguments);
- };
- }
- module.exports = shortOut;
|