У меня есть следующий код.Добавление функции Spinner внутри функции JQuery onclick
----HTML Part---
<div id="Optimize" class="Div"> Optimize </div>
----Jquery Part---
$('#Optimize').click(function()
{
var form_data = new FormData();
form_data.append('action',"Opt");
var perlURL= "$code";
$.ajax({
url: perlURL,
data: form_data,
type: 'post',
datatype: "script",
success: function(result) {
},
});
});
Как только пользователь нажимает кнопку «Оптимизация», следующий код jquery будет выполняться и отображать результаты для пользователя. Теперь мне нужно вставить Spinner всякий раз, когда пользователь нажимает «Оптимизация», чтобы показать, что данные загружаются. Как только данные будут загружены, счетчик должен остановиться. Итак, у меня есть две функции. Если я вставлю эти 2 функции, код JQuery будет выглядеть следующим образом.
$('#Optimize').click(function()
{
startSpin(); // ------------------------START SPIN HERE----------------
var form_data = new FormData();
form_data.append('action',"Opt");
var perlURL= "$this_code";
$.ajax({
url: perlURL,
data: form_data,
type: 'post',
datatype: "script",
success: function(result) {
stopSpin(); // --------------STOP SPIN HERE --------------
},
});
Этот код должен работать должным образом. т. е. счетчик должен начинаться, как только пользователь нажимает «Оптимизировать». но это не начинается. я чувствую, что он сразу же выполняет выполнение асинхронным образом.
Как я могу гарантировать, что пользователь выполнит startSpin(); сначала, а затем более позднюю часть функции?
Я прочитал о обещании() и попробовал различные способы выполнения обеих функций одновременно. но не смог преуспеть.
Предназначен ли «асинхронный: ложный»? – Jack
Возможно ли, что данные возвращаются слишком быстро, чтобы заметить анимацию? –
@ JackPattishall- обновил код. async: false был удален. – Ayesha