JQueryでイベントをバインドするときに使える bindWithDelay
よく、JQueryをつかってhtmlの要素にイベントをバインドするかと思いますが、
例えばチェックボックスをクリック時にイベントを走らせたい時は下記のように書きます。
$(checkbox).bind("click", some_func );
通常はこれで全然問題ないのですが、
some_funcが2、3秒かかるような重い処理だったらどうでしょう?DOMを精査して検索するような。
どうなるかというと、some_funcが完了するまでチェックボックスがON にならずに固まったように見えてしまいます。
UX的にいけてないので
$(checkbox).bindWithDelay("click", some_heavy_func ,10);
のように、してあげると、クリックと同時に処理が走らないので、ちゃんとチェックボックスがチェックされた状態
に変わってから、some_heavy_funcが動作するので、操作上違和感がなくなります。
あとはloading モダルを表示したりすれば、ちょっと重い処理になってもUX的にスムーズとなるでしょう。