From 0d463de74adad6538bbff14997b8ba560b736301 Mon Sep 17 00:00:00 2001 From: Alan Hogan Date: Thu, 22 Dec 2011 18:03:03 -0800 Subject: [PATCH] Extends definitions of throttle & debounce to make usage extra-clear. --- index.html | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index ca2ec79ba..6d866454a 100644 --- a/index.html +++ b/index.html @@ -794,6 +794,13 @@ _.defer(function(){ alert('deferred'); }); will only actually call the wrapped function at most once per every wait milliseconds. Useful for rate-limiting events that occur faster than you can keep up with. +
+
+ This method returns a function; it does + not itself execute its first argument. You should call _.throttle + only once for each function you wish to debounce (not repeatedly!). + It is the function returned from that once call to _.throttle + that you should invoke on each occurrance of the event you wish to throttle.

 var throttled = _.throttle(updatePosition, 100);
@@ -808,7 +815,18 @@ $(window).scroll(throttled);
         was invoked. Useful for implementing behavior that should only happen 
         after the input has stopped arriving. For example: rendering a 
         preview of a Markdown comment, recalculating a layout after the window 
-        has stopped being resized...
+        has stopped being resized, etc.
+        
+
+ Please note that the first invocation of a debounced function will *not* + immediately execute it, but rather, the first execution will be at least wait + milliseconds later. +
+
+ As with throttle, this method returns a function; it does + not itself execute its first argument. You should call _.debounce + only once for each function you wish to debounce, and you should + call the returned function every time the event you wish to debounce occurs.

 var lazyLayout = _.debounce(calculateLayout, 300);