Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Makun

JQuery Mostrar Loading enquanto AJAX carrega.

Recommended Posts

Ola gostaria de saber meu código esta errado, fiz uma requisição com o banco e esta voltando correto os resultado, porém gostaria de mostrar um gif de loading enquanto faz a requisição, porém não esta aparecendo, e pelo que eu vi atualmente com a versão do jquery usa-se always() pra fazer isso ou nao ?

 

$(".style_cliente input").blur(function(){
	var client = $(this).val();
	$.ajax({
		url: 'dados.php',
		method: 'POST',
		data:{nClient:client,client:"pesquisar"}
	}).always(function(){
		$(".teste_gif").css({display:'block'});
	}).done(function(result){
		dados = result.split("/");
		$(".teste_gif").css({display:'none'});
		$(".teste").text(result);
		$(".style_end input").val(dados[0]);
		$(".style_reg input").val(dados[1]);				        
					        
	}).fail(function(result){
		$(".style_moto").html(result);
	});

				
});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Makun Na verdade não.   o always é usado para outros retornos

 

Você pode usar o beforesend.

Tente desta forma:

 

 

$(".style_cliente input").blur(function(){
    
      var client = $(this).val();
      $.ajax({
         url: 'dados.php',
         method: 'POST',
	 data:{nClient:client,client:"pesquisar"},
         beforeSend: function() {
              $(".teste_gif").css({display:'block'});
         }
      }).done(function(result){
                dados = result.split("/");
		$(".teste_gif").css({display:'none'});
		$(".teste").text(result);
		$(".style_end input").val(dados[0]);
		$(".style_reg input").val(dados[1]);	
      }).fail(function(){
               $(".style_moto").html(result);   
      });
});

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@DiF Eu tinha visto o beforesend até tentei usar provavelmente não consegui por erro de sintaxe, estava usando como se fosse uma função por exemplo "beforeSend()", funcionou sim o código , único problema é que não sei se é por ter poucos registros no banco ou por usar o display para ver e esconder, mas esta indo muito rápido não da nem pra ver o resultado.

teria como retardar esse result pelo menos por 1 segundo ?

 

Up: 

Na verdade consegui fazer um delay da seguinte forma, coloca um função no resultado e dando setTimeout(função,500); no caso o código ficou assim.

.done(function(result){
					       function delay(){
					       	 dados = result.split("/");
					        $(".teste_gif").css({display:'none'});
					        $(".teste").text(result);
					        $(".style_moto input").val(dados[0]);
					        $(".style_CPF input").val(dados[1]);
					        $(".style_RG input").val(dados[2]);
					      }
					      setTimeout(delay,500);
					        
					  }).fail(function(result){
					          $(".style_moto").html(result);
					  });

 

 

Editado por Makun

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Makun pelo fato de ser local, a chamada é instantânea. o que eu geralmente faço é  criar a div/img que fará o loading manualmente com css para ver como vai ficar ao ser feito a chamada ajax. Depois sim no beforeSend eu dou um prepend dessa classe no body e no complete eu removo essa div criada para o loading.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×