如果我有一个检查数据库以查看用户名是否可用的函数,并且我在jquery keydown事件上对该函数执行Ajax调用,那么是否有太多的数据库命中?每次用户点击一个键时,我都会打电话。有更好的方法吗?
由于
答案 0 :(得分:1)
我通常会发现这可以通过各种网站以下列方式实现。
在任何一种情况下,始终建议执行服务器端检查,然后将错误(如果有)显示为响应。
答案 1 :(得分:1)
或者,为什么不给布鲁尔打电话?
然后,用户只有在点击下一个字段时才会检查是否有空。
答案 2 :(得分:1)
使用setTimeOut()
在最后一次keydown后1秒运行它。如果用户输入的速度足够快,则只会产生一个查询。如果正确设置了数据库索引,即使大量查询也不成问题。
答案 3 :(得分:1)
过去我曾使用jQuery Autocomplete Control。它会在用户完成输入后几秒钟后执行请求,防止向服务器发出大量请求。
答案 4 :(得分:1)
我正在使用setTimeout()
var timer;
$('#name').keyup(function(){
clearTimeout(timer);
timer = setTimeout(name_check, 300);
});