Programação Paralela em Arquiteturas Multi-Core/Aplicações Internet: diferenças entre revisões

[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
m "extendido" não existe
 
Linha 288:
===== AJAX (requisições concorrentes) =====
 
A algum tempo atrás o modelo clássico das aplicações na web era puramente sequêncialsequuncial. Você tinha uma seqüênciasequência de chamadas de funções e elas sempre eram executadas em uma certa ordem. Mas a forma de programar para web mudou. As aplicações aumentaram de porte. Muito disso deve-se ao conjunto de tecnologias AJAX.
 
A razão pela qual o AJAX se tornou tão popular deve-se a sua capacidade de realizar ações concomitantes ou por "traztrás dos panos" para o usuário. Entretanto não existe uma real concorrência em javascript, muito menos processamento paralelo. Mas é póssivelpossível criar uma ilusão de certo grau de concorrência.
 
Um dos modos de se trabalhar com AJAX é recuperando os dados de forma assíncrona usando o objeto XMLHttpRequest. Há duas maneiras de se fazer uma requisição com um objeto XMLHttpRequest, uma é síncrona, outra assíncrona. No modo síncrono, quando você manda o objeto fazer uma requisição, o seu script é interrompido esperando pelo retorno. Quando a chamada é assíncrona, logo que a chamada é feita o fluxo de execução volta para o script, permitindo que ele execute outras funções ou ainda outras chamadas ao objeto. Como a essaessas chamadas não são realmente concorrentes, a ordem quena qual elas são feitasexecutadas é um fator importante. O que define uma chamada como síncrona ou assíncrona é o terceiro parâmetro do método open do objeto. Um modelo clássico de fazer chamadas ao XMLHttpRequest é esse:
 
<pre>
Linha 329:
</pre>
 
Fazer chamadas ao ao método open em sequência, sem que a primeira chamada tenha sido concluída, costuma não funcionar e os resultados são inesperados. O que gerealmente é feito é criar uma fila de chamadas e executaexecutá-las sequencialmente:
 
<pre>
Linha 354:
</pre>
 
Ou ainda é póssivelpossível criar outros objetos XMLHttpRequest.
 
==== PHP ====