我如何添加延迟到这个函数,我写了检查实时用户的可用性


How can I add delay into this function which i wrote for checking live user availability?

我也有这个问题,它总是导致'用户名已经采取'。我该怎么修理这个东西?我需要ajax加载器动画运行4秒然后给用户任何消息

<script type="text/javascript">
    $(document).ready(function() {
        $("#username").change(function() {
            $("#message").html("<img src='ajax-loader.gif' /> checking...");
            var username = $("#username").val();
            $.ajax({
                type: "post",
                url: "sign_up.php",
                data: "username=" + username,
                success:function(data) {
                    if(data == 0){
                        $("#message").html("<img src='tick.png' /> Username available");
                    } else {
                        $("#message").html("<img src='cross.png' /> Username already taken");
                    }
                }
            });
        });
    });
</script>

在你的ajax调用错误,它应该如下

$.ajax({
    url: "sign_up.php",
    data: {'username': username},
    type: "POST",
    success: function(data) {
        if(data == 0) {
            $("#message").html("<img src='tick.png' /> Username available");
        } else {
            $("#message").html("<img src='cross.png' /> Username already taken");
        }
    }
});

在注册页面您可以通过$_POST['username']访问用户名

在发送ajax请求前使用setTimeout

setTimeout(function() { 
    // Just Pass
}, 4000);

这将确保请求必须在4秒后执行。

可以使用setTimeout函数。例如,下面的代码将在3秒后隐藏div

jQuery(document).ready(function () {
    //hide a div after 3 seconds
    setTimeout( "jQuery('#div').hide();",3000 );
});

我可能会使用setTimeOut()函数,其工作原理如下:

setTimeout(function() {
      // any script here will execute after 2 seconds
}, 2000);

这里的代码将在2秒后执行。

通过在success函数中使用setTimeout(),您可以延迟您的响应消息。我还更改了对对象的数据赋值,这更好,因为jQuery将为您编码值。如果你像在你的原始代码传递一串数据,你负责编码,你需要在encodeURIComponent()包装它。

$.ajax({
        type: "post",
        url: "sign_up.php",
        data: {username : username},
        success:function(data){
            setTimeout(function(){
                var msg = data == 0 ? "<img src='tick.png' /> Username available" : "<img src='cross.png' /> Username already taken";
                $("#message").html(msg);
             }, 4000);
        }
}