Quão sofisticado é o meu código Ajax ser?
-
09-06-2019 - |
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;
}
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...') }
});