Eu tenho visto que muita gente quebra a cabeça na hora de executar qualquer função ajax. Existem muitos códigos na net e geralmente as pessoas acabam se atrapalhando com eles. Tendo em vista essa dificuldade comum e a falta de códigos prontos em ajax no fórum, resolvi fazer uma implementação de uma "Classe" em Js para executar um Ajax simples.
O arquivo está no fim do post, disponível para download.
A Classe tem 3 propriedades a mais além das 3 conhecidas do ajax, e 2 métodos.
Propriedades
target: Objeto html onde deseja inserir as informações retornadas pelo ajax.
SRH: SetRequestHeaders, é um objeto dos tipos de headers alternativos. (Funciona apenas para metodos "POST")
loading: Html exibido quando o ajax estiver carregando.
As outras propriedades são as padrões do Ajax. url, method, async.
url: tipo string.
method: tipo string. "GET" definido por padrão.
async: tipo booleano. false definido por padrão.
Todas as propriedades tem valores padrões caso você não defina nenhum.
Métodos
onreadystatechange(): Função para dar mais liberdade ao programador, caso queira modificar o comportamento padrão do ajax.
open(): Executa o ajax.
Na prática
href do link clicado para uma página ajax.php e vai retornar o valor para dentro do html do link.
Esse pequeno script vai pegar os links de um determinado div, e ao clicar em cada um deles, o ajax ai mandar o conteúdo o
var ajax=new $ajax({}) for( var x in document.getElementById("caixa"). getElementsByTagName('a') ) document.getElementById("caixa"). getElementsByTagName('a')[x].onclick=function(){ ajax.target=this ajax.url=( "http://edu.110mb.com/ajax.php?sid="+ Math.random()+ "&q="+encodeURI(this.href.split("#")[1]) ) ajax.open() return false }
Obs:O exemplo deve ser testado de preferência no ie6 para ver ele rodando, já que o ie6 não tem restrições de segurança nesse caso. Talvez o iE7 também seja assim, então teste no iE7 caso não tenha o iE6 instalado.
No url eu usei o math.random para gerar um número grande aleatório e mandar para o servidor evitando a cache, dica que vi da Andréia. EncodeURI é para codificar os dados para que sejam vistos os acentos normalmente. Seja por "POST" ou "GET", o url deve ser setado por meio de query strings, o script vai se encarregar de fazer a conversão.
É isso, eu tenho usado muito espero que para vocês seja útil. Não é para facilitar tudo, mas algumas partes e fazer você ter certeza que o Ajax é completo e vai funcionar.
Deixo os tópicos para críticas e/ou dúvidas de uso dessa classe.
Pergunta
KaKarotto
Oi ^_^
Eu tenho visto que muita gente quebra a cabeça na hora de executar qualquer função ajax. Existem muitos códigos na net e geralmente as pessoas acabam se atrapalhando com eles. Tendo em vista essa dificuldade comum e a falta de códigos prontos em ajax no fórum, resolvi fazer uma implementação de uma "Classe" em Js para executar um Ajax simples.
O arquivo está no fim do post, disponível para download.
A Classe tem 3 propriedades a mais além das 3 conhecidas do ajax, e 2 métodos.
SRH: SetRequestHeaders, é um objeto dos tipos de headers alternativos. (Funciona apenas para metodos "POST")
Ex:
loading: Html exibido quando o ajax estiver carregando.
url: tipo string.
method: tipo string. "GET" definido por padrão.
async: tipo booleano. false definido por padrão.
Todas as propriedades tem valores padrões caso você não defina nenhum.
open(): Executa o ajax.
Na prática
href do link clicado para uma página ajax.php e vai retornar o valor para dentro do html do link.
Esse pequeno script vai pegar os links de um determinado div, e ao clicar em cada um deles, o ajax ai mandar o conteúdo o
var ajax=new $ajax({})
for(
var x in
document.getElementById("caixa").
getElementsByTagName('a')
)
document.getElementById("caixa").
getElementsByTagName('a')[x].onclick=function(){
ajax.target=this
ajax.url=(
"http://edu.110mb.com/ajax.php?sid="+
Math.random()+
"&q="+encodeURI(this.href.split("#")[1])
)
ajax.open()
return false
}
Obs:O exemplo deve ser testado de preferência no ie6 para ver ele rodando, já que o ie6 não tem restrições de segurança nesse caso. Talvez o iE7 também seja assim, então teste no iE7 caso não tenha o iE6 instalado.
No url eu usei o math.random para gerar um número grande aleatório e mandar para o servidor evitando a cache, dica que vi da Andréia. EncodeURI é para codificar os dados para que sejam vistos os acentos normalmente. Seja por "POST" ou "GET", o url deve ser setado por meio de query strings, o script vai se encarregar de fazer a conversão.
É isso, eu tenho usado muito espero que para vocês seja útil. Não é para facilitar tudo, mas algumas partes e fazer você ter certeza que o Ajax é completo e vai funcionar.
Deixo os tópicos para críticas e/ou dúvidas de uso dessa classe.
Abraço
ajax.js - Atualizado, mais no próximo post.
ajax.htm
ajax.zip
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.