Ir ao conteúdo
  • Cadastre-se

JQuery É certo fazer isso ? PHP e jQuery.


Posts recomendados

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 ?

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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("");
  });

}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

  • Moderador

@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...

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...