1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Resolvido]Questao sobre ajax

Discussão em 'Web Development' iniciada por Armadillo, 20 de Novembro de 2007. (Respostas: 10; Visualizações: 817)

  1. Armadillo

    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: 20 de Novembro de 2007
  2. slack_guy

    slack_guy Power Member

    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.
     
  3. Armadillo

    Armadillo Folding Member

    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
    
     
  4. slack_guy

    slack_guy Power Member

    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: 20 de Novembro de 2007
  5. Armadillo

    Armadillo Folding Member

    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: 20 de Novembro de 2007
  6. Armadillo

    Armadillo Folding Member

    Ja testei: actualiza so o conteudo da iframe.
     
  7. slack_guy

    slack_guy Power Member

    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.
     
  8. Armadillo

    Armadillo Folding Member

    Exactamente.
    Vou fazer provavelmente o processo em C para gerar o html.
     
  9. slack_guy

    slack_guy Power Member

    Há milhares(?) de linguagens para fazeres isso ... umas mais eficientes, outras menos.... umas mais bonitas, outras mais feias... :-P
     
  10. Armadillo

    Armadillo Folding Member

    o servidor eh linux por isso julgo ser o melhor.
    Certo?
     
  11. slack_guy

    slack_guy Power Member

    C, C++, Perl, Python, Ruby, PHP, Java, ... you name it :-)
     

Partilhar esta Página