好的,所以我在google中搜索,在輸入中輸入文本,並立即給出條目。但我不喜歡那樣。我使用類似$("TEXTINPUT").keyup(function() {
的東西。當用戶輸入速度非常快時,它會多次連接到數據庫。是否有可能,只有當用戶停止輸入1-2秒時,我們纔會連接到PHP文件,但不是立即?我需要在jQuery中做到這一點。謝謝。如何節制jQuery事件的回調?
回答
嘗試:
var time_out;
$("TEXTINPUT").keyup(function(){
clearTimeout(time_out);
time_out = setTimeout(your_function, 500);
}
function your_function()
{
/*CHECK DATABASE*/
}
下面是我通常接近它:
$(function(){
var tiTO, jqXHR;
$('textinput').keyup(function(){
if (tiTO) clearTimeout(tiTO);
if (jqXHR && jqXHR.abort) jqXHR.abort();
tiTO = setTimeout(function(){
jqXHR = $.ajax({....});
//Ajax call to PHP
},2000);
});
});
每個KEYUP復位超時,並中止任何活動的阿賈克斯。
如果使用Underscore Library它像這樣簡單:從下劃線網站
$("TEXTINPUT").keyup(_.throttle(function() {...}, 150));
文檔:
油門 _.throttle(功能,等)
返回功能的節流版本,即,調用 時反覆,只會實際調用包裝的函數最多一次 每每等待的毫秒。對於速度限制事件很有用,該事件發生的速度比您能夠跟上的要快。
也有debounce
功能:
防抖動 _.debounce(功能,等)
調用抖功能將推遲執行,直到後等待 毫秒有自上次調用函數 以來已過去。用於實現在輸入停止後纔會發生的行爲 。例如:渲染降價評論的預覽 ,重新計算佈局窗口已經停止 被調整後...
+1爲下劃線:) –
只有一個問題:如果你*只需要扼殺回撥?沒有人需要一個庫來做到這一點 - 只是在瀏覽器中對JavaScript的基本理解。 –
此功能將起到有點像underscore.js,但沒有額外的依賴。它還會將調用的範圍和參數傳遞給包裝函數。與YoannM的回答不同,這將返回一個自包含的回調函數,它不使用外部變量(EG,根據需要多次使用)。
function throttle (func, wait) {
return function() {
var that = this,
args = [].slice(arguments);
clearTimeout(func._throttleTimeout);
func._throttleTimeout = setTimeout(function() {
func.apply(that, args);
}, wait);
};
}
而且用法與underscore.js庫的用法幾乎相同。
$('input').on('input keyup', throttle(function() {
// ...
}, 100));
我認爲這是反彈,而不是遏制行爲 –
這是一個好點;當我回答這個問題時,我並不十分清楚反彈與節流的區別。具有諷刺意味的是,這是對下劃線的「油門」功能的改編。 @ХристоПанайотов也許你可以澄清:http://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function(沒有特別好的答案。) –
- 1. jQuery回調事件
- 2. 節點pg回調事件
- 3. Vimeo jQuery事件回調
- 4. jQuery調度事件?如何
- 5. jQuery的事件,回調和$(本)
- 6. JQuery的回調函數事件
- 7. 如何訪問jQuery的事件對象在海邊的回調
- 8. 如何用RX節制事件流?
- 9. 如何清除jQuery中的最後一個bind()事件回調?
- 10. 如何調用jQuery的拖拽事件
- 11. Opal-jQuery事件完整回調
- 12. jQuery colorbox和onOpen回調事件
- 13. JQuery Slider事件處理函數回調
- 14. jQuery如何在ajax回調後重新綁定此事件?
- 15. 如何使用twitter回調事件
- 16. 「XYZ」回調事件如何工作?
- 17. 如何從「one」事件獲取回調
- 18. AngularStrap typeahead,如何使用事件回調
- 19. Keydown事件Jquery節點js?
- 20. 從Silverlight中的控件調節事件
- 21. 回聲類的jquery事件
- 22. JQuery事件抑制
- 23. JS/jQuery的:調度事件
- 24. jQuery調用jQuery插件的回調
- 25. 如何確保調用jquery的回調
- 26. 的jQuery插件功能調用回HTML ATTR在其他事件
- 27. 如何在另一個jQuery事件方法中調用jQuery事件方法?
- 28. 如何獲得jQuery事件處理程序中的父節點?
- 29. 事件回調中的調用函數
- 30. jQuery插件回調
使用'setTimeout'和'keyup' fucntion – diEcho
我可以在這裏理解PHP標籤,但是mysql? –