假設**有個搜尋框, 使用者輸入文字我們會自動聯想匹配出一些結果供使用者選擇,我們可能首先想到的做法就是監聽keypress事件, 然後非同步查詢結果. 但是如果使用者快速的輸入了一串字元, 假設是10個字元, 那麼就會在瞬間觸發10次請求, 這無疑不是我們想要的, 我們想要的是使用者停止輸入的時候才去觸發查詢的請求.
函式防抖就是讓某個函式在上一次執行後, 滿足等待某個時間內不再觸發此函式後再執行, 而在這個等待時間內再次觸發此函式, 等待時間會重新計算.
underscore.js的函式防抖定義: _.debounce(fn, wait, [immediate]);
debounce接收三個引數:
@params fn: 需要進行函式防抖的函式;
@params wait: 需要等待的時間, 單位為毫秒;
@params immediate: 如果為true, 則debounce會在呼叫時立刻執行一次fn,
而不需要等到wait結束後.
_.debounce = function(fn, wait, immediate) else }}
};return function()
if(callnow)
return result;
}};// demo:
$('#input').keypress(_.debounce(function() , 300));
關於高效能的那點事
園子裡面很多關於高效能,大併發,還有什麼日pv 百萬的架構搭建。其實真心真心很扯淡。對於大部分應用來說,想要高效能,主要是要做到盡可能的減少網路請求 含db redis mongo mq 等 幾乎所有的應用,效能瓶頸永遠是在頻寬那裡,硬體方面這裡就不提了,說說我們能做的事。關於各個元件到cpu 的時...
關於高效能的那點事
園子裡面很多關於高效能,大併發,還有什麼日pv百萬的架構搭建。其實真心真心很扯淡。對於大部分應用來說,想要高效能,主要是要做到盡可能的減少網路請求 含db redis mongo mq等 幾乎所有的應用,效能瓶頸永遠是在頻寬那裡,硬體方面這裡就不提了,說說我們能做的事。找了半天沒有找到那張圖,關於各...
關於高效能的那點事
園子裡面很多關於高效能,大併發,還有什麼日pv百萬的架構搭建。其實真心真心很扯淡。對於大部分應用來說,想要高效能,主要是要做到盡可能的減少網路請求 含db redis mongo mq等 幾乎所有的應用,效能瓶頸永遠是在頻寬那裡,硬體方面這裡就不提了,說說我們能做的事。找了半天沒有找到那張圖,關於各...