首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

延时校验AJAX请求

Posted on 2012-08-21 11:49  达奇  阅读(291)  评论(0编辑  收藏  举报

如果你写过验证用户输入,比如onkeypress那你就会知道,有时你想减少交互的次数运行你的校验函数。你不想打服务器在每个按键,因为大多数用户可以写自己的名字在大约秒,所以你应该较少Ajax请求,直到输入是休眠了100 ms。
那么这是一个好的例子是基于Ajax的用户名验证。

function throttle(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
}

所以,如果你是做一些与jQuery,像一个按键验证,你可以这么做:

$('input.username').keypress(throttle(function (event) {
// do the Ajax request
}, 250));

 

文章来源:http://remysharp.com/2010/07/21/throttling-function-calls/