原文地址javascript
資料css
debounce()和throttle()兩個方法很是類似(包括調用方式和返回值),做用卻又有不一樣。java
它們都是用於函數節流,控制函數不被頻繁地調用,節省客戶端及服務器資源。segmentfault
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>