Tecnologia

Em por

O objetivo deste artigo é mostrar de forma bem simples como funciona uma requisição utilizando comunicação síncrona e assíncrona. Vamos usar uma ANALOGIA que é muito conhecida de todos nós que já frequentamos uma escola.

No ambiente cliente-servidor, nossas aplicações trabalham através de requisições e respostas, onde o cliente (Ex: Navegador) envia uma requisição e, o servidor (Domínio), local onde está hospedada nossa aplicação, retorna uma resposta. Nesse processo existem diversas etapas, mas abordar cada estado de uma requisição é assunto para outra matéria.

Primeiramente uma abordagem natural do que é cada uma delas.

Síncrona (Synchronous)

Quando uma requisição é enviada, o processo remetente é bloqueado até que ocorra uma resposta, ou seja, não é possível enviar novas requisições até que nossa requisição atual seja finalizada, existe sincronismo entre as requisições.

Assíncrona (Asynchronous)

Em uma requisição assíncrona, não existe sincronismo entre as requisições, sendo assim, podemos enviar diversas requisições em paralelo, onde cada resposta retorna quando estiver pronta.

Requisição vs Prova Escolar

Agora que conhecemos os tipos de requisição, vamos fazer uma analogia com um caso do nosso cotidiano escolar, fazer prova. Quando vamos fazer prova, os professores têm basicamente duas opções, ir de mesa em mesa entregando as provas para cada aluno ou entregar uma quantidade de provas para os primeiros de cada fileira.

Essas situações são equivalentes aos tipos de requisição, pois entregar uma quantidade de provas sempre para a primeira pessoa da fileira, pode, dependendo da ocasião e do professor, ser bem mais prático.

Neste caso, o de entregar as provas para o primeiro aluno, eles mesmos vão pegando a sua e passando o restante para os outros até chegar ao último que, pegando a sua, retorna o restante da sobra, se existir é claro, até o primeiro da fila novamente. Por sua vez, o professor retorna de fileira em fileira resgatando ("sua requisição") o restante da prova para guardar.

Repare que quando ele entregou o pacote para o aluno da primeira fila, ele requisitou que fosse repassado ao seu colega de trás, esse método é assíncrono, ou seja, enviamos uma requisição em paralelo e aguardamos sua resposta a qualquer momento, sem sincronismo.

Já no caso do professor resolver ir de carteira em carteira entregando um a um a prova, existe um sincronismo, ou seja, esse método é síncrono.

 


AJAX síncrono e assíncrono com jQuery

Muita gente acredita que AJAX se resume em requisições assíncronas, mas isso é um engano, também é possível realizar requisições síncronas, como estudamos anteriormente, nas requisições síncronas, só prosseguimos com nossas tarefas após obter nossa resposta.

Por padrão, o jQuery utiliza requisições assíncronas para trabalhar com AJAX, mas caso seja necessário trabalhar com AJAX através de requisições síncronas, como aguardar a aprovação de uma compra com cartão de crédito por exemplo, precisamos trabalhar com o método jQuery.ajax() configurando sua propriedade async como false.

Vejamos um exemplo de requisição síncrona:

 $.ajax({ url: 'script.php', async: false }).done(function(data) { alert(data); }); 

Agora, uma requisição assíncrona:

 $.ajax({ url: 'script.php', async: true }).done(function(data) { alert(data); }); 

Conteúdo do arquivo script.php chamado nas duas requisições acima:

  

Faça o teste e lembre-se, no caso de solicitação síncrona o navegador fica bloqueado (às vezes uma tela branca) aguardando o resultado da requisição, afinal o professor está indo de carteira em carteira entregando suas provas.

Espero ter sido claro nas explicações e tenha sanado todas suas dúvidas com este artigo. 

Dúvidas, críticas ou sugestões comentem abaixo.laugh

Veja Também:

Artigos Relacionados a categoria: Tecnologia

Olá, deixe seu comentário para Requisições síncronas e assíncronas

Já temos 2 comentário(s). DEIXE O SEU :)
Ana Carolina

Ana Carolina

Matéria muito boa, esclareceu muito bem minhas dúvidas. Parabéns!
★☆☆☆☆ DIA 04.12.14 11h12 RESPONDER
N/A
Enviando Comentário Fechar :/
Everton J Paula

Everton J Paula

Gostei do artigo, será que existe uma maneira de fazer uma cadeia de requisições síncronas, onde a próxima dependa de uma decisão da primeira??
★☆☆☆☆ DIA 04.12.14 13h12 RESPONDER
N/A
Enviando Comentário Fechar :/
Enviando Comentário Fechar :/

...AINDA NÃO VIU NOSSO PORTFÓLIO?

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora