underscore.jsのdebounce

調べてたのメモしておく


underscore.jsのdebounceを使うと、関数の実行を遅らせることができる

以下の例だと、a.some_classをクリックした500ミリ秒後に関数が実行される。
連続してクリックすると、最後にクリックした時間の500ミリ秒後に1度だけ実行される。

    $('a.some_class').on('click', _.debounce(function(e){
        console.log('clicked!');
    }, 500));


3つめの引数(immediate)にtrueを渡すと関数はすぐに実行される。
500ミリ秒を開けずに連続してクリックし続けている場合は、2度めの関数実行が行われない。

    $('a.some_class').on('click', _.debounce(function(e){
        console.log('clicked!');
    }, 500, true));


文章で書くとわかりづらいけど、動かすとわかる。