debounce()和throttle()两个方法非常相似(包括调用方式和返回值),作用却又有不同。
它们都是用于函数节流,控制函数不被频繁地调用,节省客户端及服务器资源。
debounce()方法关注函数执行的间隔,即函数两次的调用时间不能小于指定时间。 throttle()方法更关注函数的执行频率,即在指定频率内函数只会被调用一次。
<script type="text/javascript">
var query = _(function() {
// 在这里进行查询操作
}).throttle(500);
$(window).bind('scroll', query);
</script>
<input type="text" id="search" name="search" />
<script type="text/javascript">
var query = _(function() {
// 在这里进行查询操作
}).debounce(200);
$('#search').bind('keypress', query);
</script>