lix-website/themes/lix/assets/bootstrap/node_modules/debounce/Readme.md

70 lines
1.7 KiB
Markdown
Raw Normal View History

2024-04-27 03:39:10 +00:00
# debounce
Useful for implementing behavior that should only happen after a repeated
action has completed.
## Installation
$ component install component/debounce
Or in node:
$ npm install debounce
## Example
```js
var debounce = require('debounce');
window.onresize = debounce(resize, 200);
function resize(e) {
console.log('height', window.innerHeight);
console.log('width', window.innerWidth);
}
```
To later clear the timer and cancel currently scheduled executions:
```
window.onresize.clear();
```
To execute any pending invocations and reset the timer:
```
window.onresize.flush();
```
Alternately, if using newer syntax:
```js
import { debounce } from "debounce";
```
## API
### debounce(fn, wait, [ immediate || false ])
Creates and returns a new debounced version of the passed function that
will postpone its execution until after wait milliseconds have elapsed
since the last time it was invoked.
Pass `true` for the `immediate` parameter to cause debounce to trigger
the function on the leading edge instead of the trailing edge of the wait
interval. Useful in circumstances like preventing accidental double-clicks
on a "submit" button from firing a second time.
The debounced function returned has a property 'clear' that is a
function that will clear any scheduled future executions of your function.
The debounced function returned has a property 'flush' that is a
function that will immediately execute the function if and only if execution is scheduled,
and reset the execution timer for subsequent invocations of the debounced
function.
## License
MIT
Original implementation is from [`underscore.js`](http://underscorejs.org/)
which also has an MIT license.