josedasilva @ 18:04

Qua, 20/09/06

A Zend lançou à cerca de uma semana a Certificação em Php5, esta certificação não se trata apenas de um upgrade a certificações PHP4, é um exame novo completamente re-desenhado que abrange as seguintes áreas:

  • O básico do da linguagem

  • XML e Webservices

  • Funções

  • Arrays

  • Programação por Objecto

  • Programação de Rede

  • Design e Teoria

  • Diferenças PHP4/PHP5

  • Segurança

  • Strings e Patterns

  • Bases de Dados

  • Funcionalidades Web



O programa detalhado pode ser consultado na página da Zend.

O custo da certificação PHP5 é de $125, o mesmo preço da certificação da de PHP4, se optar pelas duas juntas pagará $225 (-$25) do que se efectuar as certificações separadamente.

Ao contrário do pensado por muitas das pessoas com quem troco impressões regularmente existem diversos centros aptos a efectuar o exame da certificação em Portugal, para os descobrir basta ir á página da Vue e navegar pela secção de localização de centros de testes.

Tags:


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:

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
 
subscrever feeds
blogs SAPO