У меня есть функция JQuery, которая передает файлы из одного места в другое. Иногда из-за размера файла функция занимает много времени, и я не могу сказать пользователю, что она все еще работает. Как мне поместить что-нибудь на экран, пока функция не завершится, чтобы пользователь знал, что система все еще работает, и не обновляет или не закрывает страницу?
function transferfile(sourceurl, desturl)
{
//do the transfer
}
$.when( transferfile() ).done(function() {
alert("completed");
});
Блесна - это то, что вам нужно. Я нашел похожую ветку. Посмотрите на решение здесь Как реализовать изображение счетчика jQuery в запросе AJAX
вот ссылка на скрипт js jsfiddle.net/kdailearning/7defwaxp/5, код слишком велик для отображения здесь. Я добавил комментарий для отображения div или любого изображения, но поскольку функция является асинхронной и вызывается несколько раз. Он все выполняет, а рабочее изображение не отображается
Сначала скачайте гифку с прядильщиком
Затем в начале функции поместите этот код:
$ ('# ваш-результат-контейнер'). append ('')
Когда ваша функция закончится
$ ('# ваш-результат-контейнер'). empty (); $ {'# ваш-результат-контейнер'). append ('Успех!');
Это не сработало, это обычная функция, а не ajax, но внутри она вызывает несколько других функций ajax. Когда я добавляю счетчик в начале кода, не скрывая его внизу, он отображается, но если я добавляю функцию скрытия в конце функции, он никогда не отображается, и функция все еще работает.