údržba
This commit is contained in:
3
CyLukTs/lukan/node_modules/throttleit/.npmignore
generated
vendored
Normal file
3
CyLukTs/lukan/node_modules/throttleit/.npmignore
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
components
|
||||
build
|
||||
node_modules
|
19
CyLukTs/lukan/node_modules/throttleit/History.md
generated
vendored
Normal file
19
CyLukTs/lukan/node_modules/throttleit/History.md
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
1.0.0 / 2015-02-27
|
||||
==================
|
||||
|
||||
- Internal refactor
|
||||
- Removed `max` argument
|
||||
- Context for invocation is cached/cleared properly
|
||||
- More tests
|
||||
|
||||
0.0.2 / 2013-03-26
|
||||
==================
|
||||
|
||||
- Cache the return value
|
||||
- Don't use `setTimeout()`
|
||||
|
||||
0.0.1 / 2013-03-26
|
||||
==================
|
||||
|
||||
- Initial release
|
18
CyLukTs/lukan/node_modules/throttleit/Makefile
generated
vendored
Normal file
18
CyLukTs/lukan/node_modules/throttleit/Makefile
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
build: components index.js
|
||||
@component build --dev
|
||||
|
||||
components: component.json
|
||||
@component install --dev
|
||||
|
||||
clean:
|
||||
rm -fr build components template.js
|
||||
|
||||
test: node_modules
|
||||
@./node_modules/mocha/bin/mocha \
|
||||
--reporter spec
|
||||
|
||||
node_modules: package.json
|
||||
@npm install
|
||||
|
||||
.PHONY: clean
|
32
CyLukTs/lukan/node_modules/throttleit/Readme.md
generated
vendored
Normal file
32
CyLukTs/lukan/node_modules/throttleit/Readme.md
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
# throttle
|
||||
|
||||
Throttle a function
|
||||
|
||||
## Installation
|
||||
|
||||
$ component install component/throttle
|
||||
|
||||
## Example
|
||||
|
||||
var throttle = require('throttle');
|
||||
window.onresize = throttle(resize, 200);
|
||||
|
||||
function resize(e) {
|
||||
console.log('height', window.innerHeight);
|
||||
console.log('width', window.innerWidth);
|
||||
}
|
||||
|
||||
## API
|
||||
|
||||
### throttle(fn, wait)
|
||||
|
||||
Creates a function that will call `fn` at most once every `wait` milliseconds.
|
||||
|
||||
Supports leading and trailing invocation.
|
||||
|
||||
`fn` will receive last context (`this`) and last arguments passed to a throttled wrapper before `fn` was invoked.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
13
CyLukTs/lukan/node_modules/throttleit/component.json
generated
vendored
Normal file
13
CyLukTs/lukan/node_modules/throttleit/component.json
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "throttle",
|
||||
"repo": "component/throttle",
|
||||
"description": "Throttle a function",
|
||||
"version": "0.0.2",
|
||||
"keywords": [],
|
||||
"dependencies": {},
|
||||
"development": {},
|
||||
"license": "MIT",
|
||||
"scripts": [
|
||||
"index.js"
|
||||
]
|
||||
}
|
14
CyLukTs/lukan/node_modules/throttleit/example.js
generated
vendored
Normal file
14
CyLukTs/lukan/node_modules/throttleit/example.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
var throttle = require('./');
|
||||
|
||||
function onprogress(n) {
|
||||
console.log('progress %s%', n);
|
||||
}
|
||||
|
||||
onprogress = throttle(onprogress, 500);
|
||||
|
||||
var n = 0;
|
||||
setInterval(function(){
|
||||
if (n >= 100) return;
|
||||
onprogress(n++);
|
||||
}, 50);
|
32
CyLukTs/lukan/node_modules/throttleit/index.js
generated
vendored
Normal file
32
CyLukTs/lukan/node_modules/throttleit/index.js
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
module.exports = throttle;
|
||||
|
||||
/**
|
||||
* Returns a new function that, when invoked, invokes `func` at most once per `wait` milliseconds.
|
||||
*
|
||||
* @param {Function} func Function to wrap.
|
||||
* @param {Number} wait Number of milliseconds that must elapse between `func` invocations.
|
||||
* @return {Function} A new function that wraps the `func` function passed in.
|
||||
*/
|
||||
|
||||
function throttle (func, wait) {
|
||||
var ctx, args, rtn, timeoutID; // caching
|
||||
var last = 0;
|
||||
|
||||
return function throttled () {
|
||||
ctx = this;
|
||||
args = arguments;
|
||||
var delta = new Date() - last;
|
||||
if (!timeoutID)
|
||||
if (delta >= wait) call();
|
||||
else timeoutID = setTimeout(call, wait - delta);
|
||||
return rtn;
|
||||
};
|
||||
|
||||
function call () {
|
||||
timeoutID = 0;
|
||||
last = +new Date();
|
||||
rtn = func.apply(ctx, args);
|
||||
ctx = null;
|
||||
args = null;
|
||||
}
|
||||
}
|
22
CyLukTs/lukan/node_modules/throttleit/package.json
generated
vendored
Normal file
22
CyLukTs/lukan/node_modules/throttleit/package.json
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "throttleit",
|
||||
"description": "Throttle a function",
|
||||
"version": "1.0.0",
|
||||
"keywords": [],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/component/throttle.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"mocha": "^1.18.0"
|
||||
},
|
||||
"license": "MIT",
|
||||
"component": {
|
||||
"scripts": {
|
||||
"throttle/index.js": "index.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": "mocha --reporter spec"
|
||||
}
|
||||
}
|
73
CyLukTs/lukan/node_modules/throttleit/test.js
generated
vendored
Normal file
73
CyLukTs/lukan/node_modules/throttleit/test.js
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
var assert = require('assert');
|
||||
var throttle = require('./');
|
||||
|
||||
describe('throttle', function(){
|
||||
function counter() {
|
||||
function count(){
|
||||
count.invoked++;
|
||||
}
|
||||
count.invoked = 0;
|
||||
return count;
|
||||
}
|
||||
|
||||
it('should throttle a function', function(done){
|
||||
var count = counter();
|
||||
var wait = 100;
|
||||
var total = 500;
|
||||
var fn = throttle(count, wait);
|
||||
var interval = setInterval(fn, 20);
|
||||
setTimeout(function(){
|
||||
clearInterval(interval);
|
||||
assert(count.invoked === (total / wait));
|
||||
done();
|
||||
}, total + 5);
|
||||
});
|
||||
|
||||
it('should call the function last time', function(done){
|
||||
var count = counter();
|
||||
var wait = 100;
|
||||
var fn = throttle(count, wait);
|
||||
fn();
|
||||
fn();
|
||||
assert(count.invoked === 1);
|
||||
setTimeout(function(){
|
||||
assert(count.invoked === 2);
|
||||
done();
|
||||
}, wait + 5);
|
||||
});
|
||||
|
||||
it('should pass last context', function(done){
|
||||
var wait = 100;
|
||||
var ctx;
|
||||
var fn = throttle(logctx, wait);
|
||||
var foo = {};
|
||||
var bar = {};
|
||||
fn.call(foo);
|
||||
fn.call(bar);
|
||||
assert(ctx === foo);
|
||||
setTimeout(function(){
|
||||
assert(ctx === bar);
|
||||
done();
|
||||
}, wait + 5);
|
||||
function logctx() {
|
||||
ctx = this;
|
||||
}
|
||||
});
|
||||
|
||||
it('should pass last arguments', function(done){
|
||||
var wait = 100;
|
||||
var args;
|
||||
var fn = throttle(logargs, wait);
|
||||
fn.call(null, 1);
|
||||
fn.call(null, 2);
|
||||
assert(args && args[0] === 1);
|
||||
setTimeout(function(){
|
||||
assert(args && args[0] === 2);
|
||||
done();
|
||||
}, wait + 5);
|
||||
function logargs() {
|
||||
args = arguments;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
Reference in New Issue
Block a user