Você está na página 1de 7

CENTRO PAULA SOUZA ETEC DE TABOÃO DA SERRA

Desenvolvimento de sistemas

Gustavo Moreira Silva

Marcello Lucas Luz

Pesquisa: Requisições Síncronas e Assíncronas

Taboão da Serra

2023
Sumário
Funções síncronas e assíncronas......................................................................................3
Requisições Síncronas..........................................................................................................3
Exemplo.................................................................................................................................3
Requisições Assíncronas......................................................................................................4
Exemplo.................................................................................................................................5
Conclusão.................................................................................................................................6
Funções síncronas e assíncronas
Quando desenvolvemos aplicações web em JavaScript, muitas vezes
precisamos realizar operações que envolvem a busca de dados em APIs
externas, carregamento de arquivos ou interações assíncronas. Nesses
cenários, é crucial entender as diferenças entre requisições síncronas e
assíncronas.

As requisições síncronas são simples e diretas, mas podem bloquear a


execução do código e deixar a interface do usuário não responsiva. Por outro
lado, as requisições assíncronas permitem que o código continue executando
enquanto a operação é processada, evitando bloqueios e melhorando a
experiência do usuário.

Requisições Síncronas
São aquelas em que o código espera pela resposta antes de continuar
sua execução. Isso significa que, ao fazer uma requisição síncrona, o fluxo de
execução fica bloqueado até que a resposta seja totalmente recebida. Durante
esse período de espera, a interface do usuário fica congelada e não responde
a outras interações, o que pode causar uma experiência ruim para o usuário.
Por isso, as requisições síncronas são menos utilizadas em aplicações
modernas.

Exemplo

 Cria-se uma instância do objeto XMLHttpRequest.


 Usa-se open() para configurar a requisição, especificando o método
HTTP (GET neste caso), a URL e o terceiro parâmetro como false para
indicar uma requisição síncrona.
 Usa-se send() para enviar a requisição.
 Verifica-se o código de status da resposta usando status.
 Se o código de status for 200, exibimos o conteúdo da resposta usando
responseText.
 Caso contrário, exibe o código de status em caso de erro.

Requisições Assíncronas
são projetadas para evitar bloqueios na execução do código. Ao fazer
uma requisição assíncrona, o código continua sua execução normalmente, sem
esperar pela resposta imediatamente. Em vez disso, uma função de retorno
(callback) é registrada para ser executada quando a resposta for recebida.
Durante o tempo de espera pela resposta, a interface do usuário permanece
responsiva e pode continuar respondendo a outras interações. Essa
abordagem é amplamente preferida em aplicações web, pois oferece uma
melhor experiência do usuário.

Em uma definição mais ampla as requisições síncronas bloqueiam a


execução do código até que a resposta seja recebida, enquanto as requisições
assíncronas permitem que o código continue sendo executado, registrando
uma função de retorno para lidar com a resposta quando ela chegar. No
contexto de aplicações web, as requisições assíncronas são amplamente
preferidas, pois mantêm a interface do usuário responsiva e oferecem uma
melhor experiência para o usuário.
Exemplo

 fetch para fazer uma requisição GET à URL especificada.


 then() para lidar com a resposta da requisição.
 Dentro do primeiro .then(), verificamos se a resposta foi bem-
sucedida usando response.ok.
 Se a resposta foi bem-sucedida, usamos response.text() para
obter o conteúdo da resposta.
 Caso contrário, lançamos um erro usando throw new Error() com
a mensagem de erro contendo o código de status.
 No segundo .then(), recebemos o conteúdo da resposta como
argumento (neste caso, chamamos de data) e o exibimos.
 catch() para lidar com erros e exibir a mensagem de erro.
Conclusão

Em conclusão, as requisições síncronas e assíncronas são dois


paradigmas distintos de comunicação entre sistemas, cada um com suas
vantagens e desvantagens.

As requisições síncronas são caracterizadas por uma abordagem mais


tradicional, em que o cliente faz uma solicitação ao servidor e aguarda uma
resposta antes de continuar a execução. Isso significa que o cliente fica
bloqueado até receber a resposta, o que pode levar a uma diminuição do
desempenho e da eficiência em certos cenários. No entanto, as requisições
síncronas são mais fáceis de implementar e entender, especialmente em
situações em que a resposta imediata é necessária ou quando a ordem das
requisições é importante.

Já as requisições assíncronas adotam uma abordagem mais flexível, em


que o cliente pode enviar uma solicitação e continuar a execução sem esperar
pela resposta imediata. O servidor processa a solicitação em segundo plano e
envia a resposta quando estiver pronta. Isso permite que o cliente seja mais
responsivo e aproveite melhor os recursos disponíveis, especialmente em
cenários de alta concorrência ou quando várias solicitações precisam ser feitas
em paralelo. No entanto, a implementação e o gerenciamento das requisições
assíncronas podem ser mais complexos, exigindo técnicas como call-backs.

A escolha entre requisições síncronas e assíncronas depende do


contexto e dos requisitos do sistema. Para cenários em que a resposta
imediata é essencial e a ordem das requisições é crítica, as requisições
síncronas podem ser a melhor opção. Por outro lado, quando a responsividade
e o aproveitamento eficiente de recursos são prioritários, as requisições
assíncronas podem trazer benefícios significativos.

Em última análise, tanto as requisições síncronas quanto as assíncronas


são ferramentas importantes na comunicação entre sistemas e devem ser
escolhidas de acordo com as necessidades específicas de cada projeto.
Referências
Lidando com resultados de requisições síncronas e assíncronas. (12 de 08 de 2017). Fonte:
StackOverflow: https://pt.stackoverflow.com/questions/228612/lidando-com-
resultados-de-requisi%C3%A7%C3%B5es-s%C3%ADncronas-e-ass%C3%ADncronas/
Data de acesso: 11/06/2023

Requisições síncronas e assíncronas. (s.d.). Fonte: Mdn Web Docs:


https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHttpRequest/Synchronous_an
d_Asynchronous_Requests#see_also/ Data de acesso: 11/06/2023

Você também pode gostar