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:  
Will871

JQuery É certo fazer isso ? PHP e jQuery.

Recommended Posts

Boa noite, pessoal.
Eu atualmente estou usando a seguinte estrutura para desenvolver minhas aplicações:

jQuery para fazer a requisição:

    function slide(){
        $.post('class/chamar.php', {slides:1})
        .done(function(){
            $('#main-slider').html('Carregando os slides, aguarde!');
        }).fail(function(){
            $('#main-slider').html('');
        }).always(function(retorno){
            $('#main-slider').html(retorno);
        });
    }

Eu usei a seguinte lógica pra isso ...
Eu tenho a função slide, ela será responsável para carregar os slides na index, ela envia para "class/chamar.php" um $_POST chamado "slides", e printa na id "main-slider" o retorno. Quando chega no arquivo chamar.php tenho o seguinte:

	if(isset($_POST['slides']))
		$basico->slides();

Após verificar se slides existe, ele afirma que é a solicitação, e então chama o método da classe que está armazenado em "$basico", faz todo o processo e retorna os dados para o jQuery no ".always".

A minha dúvida é a seguinte:

Isso em grande escala seria algo ruim ? Seria muito peso pra carregar ? Existe alguma forma melhor de programar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Will871 Creio que não exista uma forma "melhor".

 

Eu faria diferente... O done() não é usado para informar algo que está sendo carregando ainda. Ele age como um callback de complete( quando termina de carregar) assim como always() que seria usado para um segundo retorno depois do done().

 

Trocaria o $.post() pelo $.ajax()  e usaria o beforeSend() para informar o carregando. Algo parecido com isso:

function slide(){

   //Atribui em uma variável a requisição assíncrona
   var slides = $.ajax({
          type: "POST",
          dataType: "html",
          url: "class/chamar.php",
          data:{ slides: 1}
   });


 //chama a função beforeSend()
  slides.beforeSend(function(){
       $('#main-slider').html('Carregando os slides, aguarde!');
  }); 


 //mostra os slides, caso tenha sucesso
  slides.done(function(retorno){
       $('#main-slider').html(retorno);
  });


 //o conteiner dos slides é resetado
  slides.fail(function(){
      $('#main-slider').html("");
  });

}

 

Editado por DiF
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @DiF Entendo, eu até sei usar o $.ajax(), você mesmo me ensinou num outro tópico.  haha
    Mas eu vi maior facilidade no $.post(), e achei que não teria muita diferença entre eles, porém acho que o ajax dessa forma que passou agora ficou muito bom, tentarei aderir.

    Mas ainda sobrou a dúvida sobre o PHP, ele estaria muito pesado se eu colocasse tantos if num arquivo só ?

    Tipo .. meu arquivo chamar.php já tem mais de 20 deles, se não for 30, e ainda falta muita coisa para terminar o projeto, e recentemente fiquei com receio desse arquivo impactar muito no processo dos site.

    Por que quando solicito o arquivo, em algumas páginas ele é solicitado umas 3 ou 4 vezes, ele verifica todos os if para depois retornar o resultado solicitado.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Will871 Que mal pergunte.. porque tanto if? Você pode nesse caso usar a sintaxe do switch - case quando há muitos ifs.

    OU podes diminuir o número de linhas usando a sintaxe do IF ternário.

     

    Por exemplo:

    //IF normal:
    
    if($valor > 20){
        $resultado1;
    }else{
       $resultado2;
    }
    
    //IF Ternário
    
    $valor = ($valor <= 20)     ? $resultado1 : $resultado2;
    $valor2 = ($valor != 90)    ? $resultado1 : $resultado2;
    $valor3 = ($valor > 12)     ? $resultado1 : $resultado2;
    $valor4 = ($valor < 100)    ? $resultado1 : $resultado2;
    $valor5 = ($valor === 200)  ? $resultado1 : $resultado2;
    $valor6 = ($valor >= 20000) ? $resultado1 : $resultado2;

    Com o if ternário, podes colocar centenas de IFs se quiser.. rsrsr Deixaria sua aplicação visualmente mais elegante e limpo... fácil de entender.

     

    Veja coloquei 6 ifs ali... consumindo apenas 6 linhas! Melhor do que ter 30 ifs,  com mais de 1000 linhas no arquivo!

    Respondendo a sua principal pergunta: Não tem problema... podes colocar 2 milhões de ifs ou 2 ifs que o desempenho creio que será o mesmo..

     

    Talvez, o que pode impactar mais é o tamanho do arquivo a ser requisitado...

    Editado por DiF
    • Amei 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @DiF Muito obrigado pela ajuda, cara.

    Você sempre salvando o pessoal de desenvolvimento web ... kkkk"
    Valeu ai pelo seu tempo, vou fazer o if ternário e colocar esse $.ajax() em minhas aplicações.

    Novamente, muito obrigado mesmo!

    • 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

    ×