我试图低估如何做下一件事
$("#id").keyup2sec(...);
我的函数在有密钥时会发送JSON,问题在于,以5个为单位发送5个JSON的文本很重。这是该功能将等待2〜secs的三种方式,所以只有当人打字和2秒通过时,才会发送
您需要的是一个超时,每次用户在给定时间范围内键入键时都会清除,通常称为"限制事件"。
通常2秒比正常人要多,但是如果那是您想要的。
$("#id").on('keyup', function() {
clearTimeout( $(this).data('keytimer') );
$(this).data('keytimer', setTimeout(function() {
$.ajax(...);
},2000));
});
当用户键入密钥时,上一个超时会被清除,因此Ajax调用永远不会发生,而是排队一个新的Ajax调用,该调用将在两秒钟内发生,除非用户再次击中键等。