Pergunta

Tenho visto o exemplo simples de Ajax códigos-fonte em muitos tutoriais on-line.O que eu quero saber é se usar o código fonte dos exemplos estão perfeitamente bem ou não?

Não há nada mais a ser adicionado ao código que vai para uma aplicação do mundo real?

O que todos os passos devem ser tomados para tornar a aplicação mais robusta e segura?

Aqui está um exemplo de código-fonte que eu tenho de web:

function getChats() {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            return;
    } 
    var url="getchat.php?latest="+latest;   
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
} 

function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
            xmlHttp=new XMLHttpRequest();
    } catch (e) {
            try {
                    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
    }
    return xmlHttp;
}
Foi útil?

Solução

O código que você postou está faltando um ingrediente importante:a função stateChanged.

Se você não consegue entender o código que você postou-se, então, o que acontece é que quando a chamada para getchats.php é completa, uma "função stateChanged" é chamado e que função será responsável por lidar com a resposta.Desde que o script que você está chamando e a própria função é prefixado com "fica", então eu tenho certeza que a resposta é algo que você vai estar interessado.

Deixando isso de lado, há um número de maneiras para melhorar o código que você postou.Eu acho que ele funciona através da declaração de uma única "xmlHttp" objeto e, em seguida, de o tornar disponível para cada função (porque se não, a função stateChanged não tem nenhuma maneira de obter a resposta).Isso é bom até que você executar uma solicitação AJAX antes do último (ou últimos) não respondeu ainda, que, nesse caso, o objeto de referência é substituída para o mais recente pedido de cada vez.

Além disso, qualquer código AJAX vale o seu sal fornece funcionalidade para sucesso e fracasso (servidor de erros de página não encontrada, etc.) casos, de modo que appriopiate mensagem pode ser entregue para o usuário.

Se você quer apenas usar a funcionalidade AJAX em seu site, em seguida, eu gostaria de apontar na direção de jQuery ou um semelhantes quadro.

MAS se você realmente quiser entender a tecnologia e o que está acontecendo por trás das cenas, eu gostaria de continuar fazendo o que você está fazendo e fazendo perguntas específicas, como tentar construir uma pequena leve AJAX de classe em seu próprio país.Esta é a forma como eu fiz, e apesar de eu usar o framework jQuery hoje..Eu ainda estou feliz que eu sei como funciona nos bastidores.

Outras dicas

Eu iria usar um framework como DOMAssistant que já fez o trabalho duro para você e será mais robusto, bem como a adição extra de recursos úteis.

Além do que, o código parece que ele iria fazer o trabalho.

Eu, honestamente, recomendamos o uso de uma das muitas bibliotecas disponíveis para o Ajax.Eu uso protótipo eu, enquanto outros preferem jQuery.Eu gosto de protótipo, porque é muito mínima.O Protótipo Ajax tutorial explica-o muito bem.Ele também permite que você para lidar com os erros facilmente.

new Ajax.Request('/some_url',
  {
    method:'get',
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
    },
    onFailure: function(){ alert('Something went wrong...') }
  });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top