josedasilva @ 16:51

Qua, 20/09/06

Pois é, o uso detse tipo de técnicas, onde não temos o total controlo sobre a velocidade e ordem de recepção de pedidos leva por vezes a histórias destas, aliás é por isso mesmo se chama assíncrono.

Num dos testes de laboratório que tanto gosto de efectuar, estive a testar multiplos pedidos simulâneos assincronos, o que me levou à descoberta de um possível problema, quando não temos em mente que dois pedidos assíncronos, efectuados no mesmo momento, podem ter tempos de resposta variáveis.

Imaginemos a seguinte iteracção:

1. Click num qualquer botão leva ás seguintes acções:

1. Envio de pedido para alterar o estado de um registo na base de dados e actualização da "div" actual
2. Envio de pedido de actualização de uma segunda "div" com o registo editado anteriomente já actualizado

A ideia é simples, imaginem-se duas listas, onde numa se listam registos activos e na outra se listam registos inactivos. Imagine-se que se deseja inactivar um registo, a estratégia passa por actualizar o registo na base de dados como inactivo e actualizar ambas as listas de modo a que o registo passe a constar imediatamente da lista certa.



  1. function deleteRecord() {

  2. doAjaxTODeleteRecordAndUpdateDeletedRecordList() ;

  3. doAjaxTOUpdateActiveRecordsList();

  4. }



O problema ocorre quando o pedido assíncrono de edição do registo para estado inactivo é executado após o pedido de actualização das listas. No meu caso o registo de edição era efectuado antes da actualização das listas, umas vezes e noutras nem por isso.

A solução poderia passar por:



  1. function deleteRecord() {

  2. doAjaxTODeleteRecordAndUpdateDeletedRecordList();

  3. setTimeout(doAjaxTOUpdateActiveRecordsList(),1000);

  4. }



A solução pode passar por obrigar o segundo pedido a ter um delay de alguns micro segundos, não garante que é tratado antes, mas garante que existem infimas probabilidades de não o ser. Ou então executar apenas o segundo pedido quando recebermos a resposta do primeiro.
UPDATE [21 Set 2006]
O Marco, do Webaserio, apresentou uma outra solução para o problema, basicamente a alternativa dele seria actualizar as duas listas na mesma chamada assíncrona, eliminando assim uma das chamadas e conseguindo garantir a ordem das respostas. Outra das soluções falada, em conversa com ele, era a da possibilidade de efectuar a actualização das listas apenas com javascript, e esta seria a solução mais eficaz, que sonsistia em mudar os elementos de lista usando javascript, directamente no DOM.Existem diversas formas de efectuar o mesmo procedimento, vamos ter de optar pela mais correcta dado o problema.

Tags:

YjwfIQxCW @ 09:22

Sab, 29/11/14

 

peoples pharmacy column the oregonian, cipro change stool color (https://archive.org/details/WhereCanIPurchaseCheapApcalisROralJelly20mgInMontgomery), [url="https://archive.org/details/WhereCanIPurchaseCheapApcalisROralJelly20mgInMontgomery"]cipro change stool color[/url], https://archive.org/details/WhereCanIPurchaseCheapApcalisROralJelly20mgInMontgomery cipro change stool color, 6758, ciloxan online (http://support.modelmanagement.com/entries/39030575-Generic-Ciloxan-Online-Pharmacy-No-Membership-ciloxan-ointment-generic), [url="http://support.modelmanagement.com/entries/39030575-Generic-Ciloxan-Online-Pharmacy-No-Membership-ciloxan-ointment-generic"]ciloxan online[/url], http://support.modelmanagement.com/entries/39030575-Generic-Ciloxan-Online-Pharmacy-No-Membership-ciloxan-ointment-generic ciloxan online, 73357, ciloxan reactions (http://mocbudesde.nation2.com/index.php?page=1282003925), [url="http://mocbudesde.nation2.com/index.php?page=1282003925"]ciloxan reactions[/url], http://mocbudesde.nation2.com/index.php?page=1282003925 ciloxan reactions, 7026, ciloxan animals (http://fieciafranla.jottit.com/generic_ciloxan_over_the_counter_online_no_prescription), [url="http://fieciafranla.jottit.com/generic_ciloxan_over_the_counter_online_no_prescription"]ciloxan animals[/url], http://fieciafranla.jottit.com/generic_ciloxan_over_the_counter_online_no_prescription ciloxan animals, 7748, ciloxan reactions (http://snk.to/E56F), [url="http://snk.to/E56F"]ciloxan reactions[/url], http://snk.to/E56F ciloxan reactions, 5679,

Blog pessoal de José Silva. Sou programador informático, nos últimos anos dedicado quase exclusivamente ao PHP.
Setembro 2006
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2

3
4
5
6
7
8
9

10
12
13
14
16

17
18
19
21
23

24
25
26
27
28
29
30


Pesquisar
 
blogs SAPO