Установите задержку в вызове ajax
Я пытаюсь добавить небольшую задержку (2 сек) между значком загрузчика и успехом с данными в виде html.
То, что я пытался использовать, - это 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>
Прямо сейчас он бежит очень быстро. Надеюсь, кто-нибудь сможет помочь.
4 ответа:
setTimeout
следует использовать внутрьsuccess
function
.
$(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() { delaySuccess(data); }, delay); } }); return false; }); }); function delaySuccess(data) { $("#group-panel-ajax").find(res.loader).remove(); $('#group-panel-ajax').html($(data).find("#group-panel-ajax")); }
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Вот что я нашел, когда хотел сделать то же самое:
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>
$(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() { delaySuccess(data); }, delay); } }); return false; }); }); function delaySuccess(data) { $("#group-panel-ajax").find(res.loader).remove(); $('#group-panel-ajax').html($(data).find("#group-panel-ajax")); }
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>