"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso exibir uma imagem de carregamento durante solicitações assíncronas de AJAX?

Como posso exibir uma imagem de carregamento durante solicitações assíncronas de AJAX?

Publicado em 19/11/2024
Navegar:778

How Can I Display a Loading Image During Asynchronous AJAX Requests?

Exibindo imagem de carregamento durante solicitações assíncronas

Executar solicitações assíncronas usando $.ajax pode causar confusão devido à falta de indicação visível do processo contínuo. Este artigo explora técnicas para mostrar uma imagem de carregamento durante tais solicitações.

Para começar, o snippet de código fornecido executa uma solicitação assíncrona para um URL e anexa o HTML recebido a um elemento com a classe 'info'. Para exibir uma imagem de carregamento, um elemento de imagem com um 'id' de 'loading-image' pode ser usado.

Uma abordagem é mostrar a imagem antes de fazer a solicitação e ocultá-la após a conclusão:

$('#loading-image').show();
$.ajax({
  url: uri,
  cache: false,
  success: function(html){
    $('.info').append(html);
  }
  complete: function(){
    $('#loading-image').hide();
  }
});

Uma abordagem mais geral é vincular a imagem de carregamento aos eventos globais ajaxStart e ajaxStop. Desta forma, a imagem ficará visível para todas as solicitações assíncronas:

$('#loading-image').bind('ajaxStart', function(){
    $(this).show();
}).bind('ajaxStop', function(){
    $(this).hide();
});

Essas técnicas fornecem uma indicação amigável da solicitação assíncrona em andamento, melhorando a experiência do usuário.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3