Skip to content

ryanpcmcquen/odis

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

odis

Odis, the Latin god of modular limitation. ๐Ÿ”ฎ

If you need debounce or throttle, Odis can help. Odis is the Latin god of modular limitation. Odis is a very helpful god.

Odis' name comes from modularis (modular) and modus (limitation). โšก

He also believes in being used internally in a project, just drop these lines somewhere in your lib, the only downfall is that you won't have access to Odis' shortcuts, but you also won't be adding anything to the global object if you are properly wrapping your project. ๐ŸŽ‰

Like most gods, Odis hates typing. For this reason, he set up very small shortcuts for accessing his functions. โŒš

odis.debounce(func, delay) may be expressed as odis.debo() or just odis.d(). Note that the delay argument is optional. The default debounce timeout is 210.

odis.throttle(func, delay) may be expressed as odis.thro() or just odis.t(). Again, the delay argument is optional. The default throttle timeout is 42.

I wrote about the origins of odis in this blog post.

CDN

Odis is available via the GitHack CDN (v1.1.3):

<script
    src="https://rawcdn.githack.com/ryanpcmcquen/odis/1e4680c8a9bfa4c3b43e718b3a83446019162f9f/odis.min.js"
></script>

https://rawcdn.githack.com/ryanpcmcquen/odis/1e4680c8a9bfa4c3b43e718b3a83446019162f9f/odis.min.js

npm

Add it to your project to use it today:

npm install --save odis

Usage

odis.throttle or odis.debounce should be used as a wrapper for the function you want to limit, like so:

document.querySelector('.foo').addEventListener(
    'click',
    odis.throttle(function () {
        console.log('Clicked.');
    },
    1000)
);