KeyDown上的Jquery Ajax,用于检查用户名是否可用。 DB命中数太多了?

时间:2011-05-02 14:46:30

标签: php jquery mysql ajax

如果我有一个检查数据库以查看用户名是否可用的函数,并且我在jquery keydown事件上对该函数执行Ajax调用,那么是否有太多的数据库命中?每次用户点击一个键时,我都会打电话。有更好的方法吗?

由于

5 个答案:

答案 0 :(得分:1)

我通常会发现这可以通过各种网站以下列方式实现。

  1. 处理用户名/电子邮件文本框的onchange事件,并在onchange事件中进行验证。
  2. 在用户名/电子邮件文本框旁边有一个带有标签“检查可用性”的按钮/图像,如果用户点击图像/按钮,则进行验证。
  3. 在任何一种情况下,始终建议执行服务器端检查,然后将错误(如果有)显示为响应。

答案 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);

});