[Resolvido]Questao sobre ajax

Armadillo

Folding Member
Boas.
Preciso de fazer o seguinte e parece-me que a soluçao passa por ajax.
Preciso que uma janela dispare no browser quando for inserido um registo numa determinada tabela de uma bd MySQL.

1.Isto eh possivel executar com ajax?
2.se sim, como? Apontem-me exemplos se conhecerem...

Obrigado
 
Última edição:
Assim à 1ª vista diria que isso não envolve ajax.

Repara:

1. O utilizador preenche e _envia_ o formulário;
2. A aplicação, no servidor, guarda os dados na BD.
3. Se um determinado campo foi preenchido, devolve no output a resposta e o código para criar uma popup (Javascript). Caso contrário, devolve só a resposta.

O Ajax só entra aqui se quiseres que no momento em que o utilizador está a preencher o formulário (e em simultâneo estás a escrever na BD - o que é mau princípio....) detectes que foi preenchido um determinado campo. Aí lanças a popup.
 
O meu problema eh q n eh o utilizador q introduz os dados na bd, eh um processo automatizado.
Basicamente quero q quando esse processo insere algum registo na bd, apareca um aviso em todos os pcs q tenham a nossa intranet aberta a informar q o registo deu entrada.

a minha ideia era a seguinta (n sei s o ajax permite)

Pseudo-codigo:
Código:
Temporizador.intervalo=1 segundo
Temporizador.activo=sim

Funcao Temporizador ()
    se (AbreRecordSet "Select * from tabela where dataintro <= agora-10sec" ).linhas > 0 entao
        janela.abrir "Registo inserido "
    fim se
Fim Funcao Temporizador
 
AH! isso é outra história! Bem mais interessante :-)

O que _eu_ faria num caso desses:

Se a minha intranet estivesse assente num sistema modular e com templates, criava um template que seria, por exemplo, flag.tmpl. Este ficheiro estaria sempre vazio até que o processo externo escrevesse lá qualquer coisa (ou apagasse). Essa 'qualquer coisa' seria o código javascript para abrir uma popup.

Depois, das duas uma:
Ou a popup aparecia sempre que havia um reload da página no cliente;
Ou havia um script (ajax) com um timer que lia de x em x tempo esse flag.tmpl.

Intervalos de 1 segundo são uma bojarda para o servidor!! Não sei quantos clientes tens, mas imagina o tráfego na rede só para 'pingar' o servidor num minuto: 60 requests * n máquinas

EDIT:
outra hipótese: ter um iframe algures na página, com 0x0, que faz o reload (do tal flag.tmpl) de x em x tempo. Neste caso nem precisas de javascript (só para a popup).
 
Última edição:
slack_guy, gostei muito das sugestoes q me deste. Acho q vou misturar um pouco de cada uma das sugestoes.
Uso uma frame com html. O ajax depois actualiza de x em x segundos o html da iframe.
Nao vou usar uma popup. podia-s tornar cansativo ao utilizador ver as janelas (n sei, de 3 em 3 segundos, por exemplo) a saltar.
Obrigado.
Tou a dever-te uma.

usando <META HTTP-EQUIV="REFRESH" CONTENT="5"> no source da iframe, ja n preciso do ajax, certo?
Questao:
Isto actualiza soh o conteudo da iframe ou da pag toda?
 
Última edição:
Precisamente :-)

Outra sugestão (se é que não estás já a fazer isso):
O conteúdo da iframe deve ser HTML (puro e duro). Isto é, essa página tem apenas o conteúdo a mostrar e não faz qualquer ligação à BD. Caso contrário, estás a ligar/desligar da BD desnecessariamente sempre que é feito um reload, com todas as consequências disso. Ou seja, seria o teu processo externo o responsável por escrever/apagar o conteúdo dessa página sempre que necessário.
 
Back
Topo