Javascript 在ajax调用中设置延迟

Javascript 在ajax调用中设置延迟,javascript,jquery,ajax,delay,settimeout,Javascript,Jquery,Ajax,Delay,Settimeout,我正在尝试在加载程序图标和以html格式显示的数据之间添加一个小延迟(2秒) 我尝试使用的是setTimeout并输入一个延迟数。这不起作用,所以我希望你能告诉我正确的方法是什么 我的ajax代码: <script type="text/javascript"> $(function () { var delay = 2000; var res = { loader: $("<div />", { class: "loader" })

我正在尝试在加载程序图标和以html格式显示的数据之间添加一个小延迟(2秒)

我尝试使用的是setTimeout并输入一个延迟数。这不起作用,所以我希望你能告诉我正确的方法是什么

我的ajax代码:

<script type="text/javascript">

$(function () {

    var delay = 2000;

    var res = {
        loader: $("<div />", { class: "loader" })
    };

    $('#search').on('click', function () {
        $.ajax({
            type: 'GET',
            url: "@Url.Action("Find", "Hotel")",
            datatype: "html",
            beforeSend: function () {
                $("#group-panel-ajax").append(res.loader);
                setTimeout(delay);
            },

            success: function (data) {
                $("#group-panel-ajax").find(res.loader).remove();
                $('#group-panel-ajax').html($(data).find("#group-panel-ajax"));
            }
        });
        return false;
    });
});

</script>

$(函数(){
var延迟=2000;
var res={
加载程序:$(“”,{class:“加载程序”})
};
$(“#搜索”)。在('click',函数(){
$.ajax({
键入:“GET”,
url:“@url.Action”(“查找”,“酒店”)”,
数据类型:“html”,
beforeSend:函数(){
$(“#组面板ajax”).append(res.loader);
设置超时(延迟);
},
成功:功能(数据){
$(“#组面板ajax”).find(res.loader.remove();
$('#group panel ajax').html($(data.find(“#group panel ajax”);
}
});
返回false;
});
});

现在它跑得真快。希望有人能帮忙。

当我想做同样的事情时,我发现了一些东西:

function doStuff()
{
  //do some things
  setTimeout(continueExecution, 10000) //wait ten seconds before continuing
}

function continueExecution()
{
   //finish doing things after the pause
}
希望它能帮助你像这样使用
setTimeout()

<script type="text/javascript">

$(function () {

    var delay = 2000;

    var res = {
        loader: $("<div />", { class: "loader" })
    };

    $('#search').on('click', function () {
        $.ajax({
            type: 'GET',
            url: "@Url.Action("Find", "Hotel")",
            datatype: "html",
            beforeSend: function () {
                $("#group-panel-ajax").append(res.loader);

            },

            success: function (data) {
                setTimeout(function(){
                     $("#group-panel-ajax").find(res.loader).remove();
                     $('#group-panel-ajax').html($(data).find("#group-panel-ajax"));
                }, delay);

            }
        });
        return false;
    });
});

</script>

$(函数(){
var延迟=2000;
var res={
加载程序:$(“”,{class:“加载程序”})
};
$(“#搜索”)。在('click',函数(){
$.ajax({
键入:“GET”,
url:“@url.Action”(“查找”,“酒店”)”,
数据类型:“html”,
beforeSend:函数(){
$(“#组面板ajax”).append(res.loader);
},
成功:功能(数据){
setTimeout(函数(){
$(“#组面板ajax”).find(res.loader.remove();
$('#group panel ajax').html($(data.find(“#group panel ajax”);
},延误);
}
});
返回false;
});
});

设置超时
应在
成功
函数
中使用

$(函数(){
var延迟=2000;
var res={
加载器:$(“”{
类:“装入器”
})
};
$(“#搜索”)。在('click',function()上{
$.ajax({
键入:“GET”,
url:“@url.Action”(“查找”,“酒店”)”,
数据类型:“html”,
beforeSend:function(){
$(“#组面板ajax”).append(res.loader);
},
成功:功能(数据){
setTimeout(函数(){
延迟成功(数据);
},延误);
}
});
返回false;
});
});
函数延迟成功(数据){
$(“#组面板ajax”).find(res.loader.remove();
$('#group panel ajax').html($(data.find(“#group panel ajax”);
}

这不是
setTimeout
的工作方式。你读过上面的吗?你在哪里看到
setTimeout
被用作
setTimeout(delay)
?我会找到更好的源代码/教程/文档。你到底想拖延什么?发送请求前是否需要延迟?或者,您希望在收到响应后和显示结果之前有一个延迟吗?在回答问题之前,至少给他一些时间来检查
setTimeout()
的工作原理