Ajax: Fácil e Eficiente com Prototype
Publicado; novembro 14, 2007 Filed under: Ajax, Prototype | Tags: Ajax, GET, PeriodicalUpdater, POST, Prototype, Request, Updater 14 Comments »
Antes de mais nada, gostaria de dizer que eu sou um fã assumido do framework prototype em prol de um código mais limpo e mais eficiênte sem recorrer a filas de requisição entre outros, e ainda pelo tamanho no framework que é baseado em alguns kb´s.
Um dos grandes atrativos do prototype é a forma como ele lida com as situações envolvendo Ajax, por partes vamos ao que interessa:
Leia o resto deste post »
GET ou POST?
Publicado; novembro 4, 2007 Filed under: Ajax | Tags: cabecalho http, GET, get e post, get post, get post AJAX, get vs post, get x post, header, HTTP, metodos de requisisao, POST, requisicao, XMLHTTPRequest 1 Comment »Uma das maiores duvidas ao utilizarmos o objeto XMLHTTPRequest é: Qual a diferença entre os metodos GET e POST e quando usar um ou outro?
Em Teoria, o método GET deve ser usado quando a solicitação for idempotente, ou seja, varias solicitações retornarão o mesmo resultado. Na prática, se o método correspondente do servidor mudar o estado de alguma forma, provavelmente isso não ocorrerá. E esse é o padrão. A diferença mais pratica se da em termos do tamanho da carga – em muitos casos, os navegadores e servidores limitarão o tamanho do URL usado para enviar dados para o servidor; em outras palavras, evite mudar o estado do servidor com uma chamada GET.
Em geral, use o método POST sempre que estiver alterando o estado do servidor. Diferente de GET, você terá que configurar o cabeçalho Content-Type do objeto XMLHTTPRequest desta forma:
xmlHttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
Diferente do que ocorre com GET, o POST não restringe o tamanho da carga que é enviada para o servidor e não há garantias de que as solicitações POST serão idempotentes.
Provavelmente a maioria das solicitações que você criará serão solicitações GET; no entanto, existe POST para o caso de você precisar usá-lo.
Ajax Seguro ? hmm, eita ?
Publicado; dezembro 20, 2006 Filed under: Ajax Leave a comment »
Além das famosas funções “Anti Injection” feitas provavelmente por gonsalves (ou algum autor anonimo), uma nova funcionalidade foi criada em cima da ideologia “AJAX”, o aSSL que como diz o autor veio para reforçar a segurança trazendo uma simulação do protocolo de segurança SSL, a idéia é a mesma.
Acho que vale a pena da uma estudada nessa biblioteca (já que é modularizada para PHP também) pois com o crescimento do AJAX + Comércio Eletrônico, esse sistema vira uma espécie de apoio a mais na luta (“luta ?”) contra os carders.
Artigo Interessante sobre o aSSL e/ou Site Oficial
Ajax – Botão de Voltar
Publicado; dezembro 8, 2006 Filed under: Ajax Leave a comment »
Estava vagando pela web no meu horário de almoço, e encontrei uma funcionalidade muito útil.
Fazer botão de voltar do browser funcionar em Ajax.
Pelo que disse o autor do artigo (Bernardo Rufino) ele pego uns códigos com a mesma ideologia e simplifico.
Clique Aqui para ler o artigo inteiro entra no link
Os código necessários e o que mais importa que é o baguio funcionando clique aqui.
AJAX Framework
Publicado; agosto 25, 2006 Filed under: Ajax Leave a comment »SPRY – AJAX Framework (ehhhhh da Adobe)
Navegando agora a pouco me deparei com outro produto da Adobe e quando fui ler a descrição, ploft, framework pra ajax, e eles ainda mostram uns exemplos do tipo “impressione seus colegas”, então ta ae a descrição : (quem não curti pega ae _/_ )
“The Spry framework for Ajax is a JavaScript library for web designers that provides functionality that allows designers to build pages that provide a richer experience for their users. It is designed to bring Ajax to the web design community who can benefit from Ajax, but are not well served by other frameworks. “
Link Original : http://labs.adobe.com/technologies/spry/
Exemplo 1 (Efeitos Lokos) : http://labs.adobe.com/technologies/spry/demos/effects/
Exemplo 2 (Galeria de Fotos) : http://labs.adobe.com/technologies/spry/demos/gallery/
Exemplo 3 (Listagem Produtos) : http://labs.adobe.com/technologies/spry/demos/products/
Exemplo 4 (Leitor RSS): http://labs.adobe.com/technologies/spry/demos/rssreader/
Contruindo uma fila de requisições em Ajax
Publicado; agosto 10, 2006 Filed under: Ajax | Tags: Ajax, fila, innerHTML, onreadystatechange, readyState, requisicao, setTimeout, url, XMLHTTPRequest 5 Comments »Olá pessoal,
Estou passando um passo a passo de como se criar uma fila de requisições e Ajax, pois como eu acredito que vcs já saibam, se vc fizer muitiplas requisições no Ajax ao mesmo tempo com o mesmo objeto Xmlhttprequest da merda….
Abaixo vai um trecho do artigo do Elcio Ferreira sobre o assunto
****************************
Para começar criamos nossa fila de conexões, um Array, e uma variável com o índice do elemento da fila que vai ser executado:
//Fila de conexões fila=[] ifila=0
Agora nossa função ajaxHTML deve apenas exibir o “Carregando …”, inserir os parâmetros que ela recebe na fila e testar se a fila está em execução. Se não estiver, executa o elemento atual da fila. Fica assim:
//Carrega via XMLHTTP a url recebida e coloca seu valor
//no objeto com o id recebido
function ajaxHTML(id,url){
//Carregando...
document.getElementById(id).innerHTML="<span class='carregando'>"+
"Carregando...</span>"
//Adiciona à fila
fila[fila.length]=[id,url]
//Se não há conexões pendentes, executa
if((ifila+1)==fila.length)ajaxRun()
}
Note a chamada à função ajaxRun. Ela vai ficar bem parecida com nossa ajaxHTML do passo anterior. Basicamente, vai criar a conexão e executá-la, com uma onreadystatechange que faz duas coisas: coloca o HTML recebido no objeto HTML e testa se há conexões na fila esperando execução, se houver, executa a próxima:
//Executa a próxima conexão da fila
function ajaxRun(){
//Abre a conexão
xmlhttp.open("GET",fila[ifila][1],true);
//Função para tratamento do retorno
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4){
//Mostra o HTML recebido
retorno=unescape(xmlhttp.responseText.replace(/+/g," "))
document.getElementById(fila[ifila][0]).innerHTML=retorno
//Roda o próximo
ifila++
if(ifila<fila.length)setTimeout("ajaxRun()",20)
}
}
//Executa
xmlhttp.send(null)
}
Você pode ver o código completo no arquivo ajaxutil.js. Foi construído para que possa ser reaproveitado em qualquer projeto. Veja como o ajax.js ficou. Exatamento igual ao do primeiro artigo, exceto toda a chamada ao XMLHttpRequest, que foi substituída por:
//Carrega o HTML
ajaxHTML("titulo","funcoes.php?h="+n)
ajaxHTML("conteudo","funcoes.php?n="+n)
Se tivéssemos que carregar mais regiões, bastaria acrescentar linhas aqui.
****************************
Se quiserem ver o artigo na integra esta em http://www.tableless.com.br/artigos/ajaxdemo2/
