Ok tenho uma dúvida um pouco grande: se uma pessoa dá numa de GMail e afins e decide usar o poder do Ajax para ir carregando a informação como é que lidamos com a barra de endereço? Eu bem sei que esta pergunta pode parecer um pouco ignorante mas a verdade é que eu sou ainda um ignorante nisto do AJAX.
Colocando um aspecto mais prático na minha questão: eu estou a desenvolver um pequeno script php que lista todas as subpastas de um directório do servidor que contenham um ficheiro ini para mostrar os meus diversos sites (é para actualizar o meu portefólio) e estou a ponderar usar este projecto para desenvolver os meus conhecimentos de Javascript e AJAX.
A grande questão que tenho é a seguinte: se eu usar o AJAX para carregar as informações e ir mudando as páginas como é que lido com a barra de endereço? Se alguém me puder ajudar nisto eu agradecia imenso porque ainda não entendo muito bem como é que se processam as interacções cliente-servidor nisto do AJAX.
PS: Peço desculpas por todo e qualquer palavreado caro que tenha usado incorrectamente.
16 Comentários
André Luís
27 de Maio de 2008 ás 19:05 [s] []
A usar Mozilla Firefox 2.0.0.14 em Mac OS X
http://www.sitepoint.com/blogs/2005/10/28/bookmarks-and-back-button-history-for-ajax-apps/
http://www.contentwithstyle.co.uk/Articles/38/
http://www.contentwithstyle.co.uk/Blog/113/
Agora não tenho muito tempo, mas vê esses links. Já devem ajudar.
Sérgio Serra
27 de Maio de 2008 ás 19:57 [s] []
A usar Mozilla Firefox 2.0.0.14 em Ubuntu Linux
Também não tenho muita experiência mas creio que deves usar o XMLHttpRequest.readyState e baseado nisso alterares a barra de estado.
Ricardo Moreira de Carvalho
27 de Maio de 2008 ás 21:25 [s] []
A usar Mozilla Firefox 2.0.0.3 em Mac OS X
Olá Luís,
O AJAX não é mais do que JavaScript que usa um objecto chamado XMLHTTPRequest para realizar a “troca” de informação com o servidor, sem necessidade de carregamento da página. O formato dos dados pode estar definido em XML (daí o nome), mas podes usar alternativas, como o JSON (podes Googlar por isso).
Não percebi bem a tua dúvida relativa à barra de endereço..
Abraços.
Dextro
27 de Maio de 2008 ás 21:28 []
A usar Mozilla Firefox 3.0 em Windows XP
A minha duvida prende-se com aquilo que o André Luís linkou: o funcionamento do Back e dos bookmarks quando criamos uma aplicação totalmente em AJAX (ou JSON, tanto faz).
Hugo Fernandes
27 de Maio de 2008 ás 21:33 [s] []
A usar Safari 3.1.1 em Mac OS X
É exactamente o mesmo problema do Flash. E para resolvê-lo, voilá: SWFAddress.
Podes ver aqui um exemplo simples da integração do SWFAdress com Ajax.
O “segredo” é o uso do cardinal para alterar a barra de endereço sem fazer um reload da página, tal qual uma âncora.
Sobre Ajax não te posso falar muito, não é a minha área, mas em relação ao Flash/Actionscript o funcionamento é bastante simples. Basicamente a classe de Actionscript, com a ajuda de Javacript, “lê” o URL para além do cardinal.
Para Flash é sem dúvida a melhor solução.
André Luís
27 de Maio de 2008 ás 21:44 [s] []
A usar Mozilla Firefox 2.0.0.14 em Mac OS X
Hugo, a solução para Javascript também passa por aí. Aliás, os browsers são os mesmos em ambos os casos
teria de ser uma solução similar.
Luís, já agora aproveito… podes usar esta questão do histórico sem usares uma ponta de Ajax. Pondera bem se precisas de carregar conteúdo on-demand ou se podes carregá-lo logo no 1o pedido.
Não uses Ajax só porque sim, ok? Uma boa interface responsiva é bem melhor do que uma cheia de efeitos mas lenta.
Dextro
27 de Maio de 2008 ás 21:47 []
A usar Mozilla Firefox 3.0 em Windows XP
Isto é tudo para eu experimentar e aprender um pouco sobre estas tecnologias. Se no fim ficar com um site porreiro todo modernaço ainda melhor (eu já tenho um backend php + layout prontos).
Sérgio Serra
27 de Maio de 2008 ás 23:11 [s] []
A usar Mozilla Firefox 2.0.0.14 em Ubuntu Linux
Como é óbvio eu estava a dormir e troquei as barras…
Ao receber os outros comments é que me apercebi. Sorry.
André Luís
28 de Maio de 2008 ás 09:34 [s] []
A usar Mozilla Firefox 2.0.0.14 em Mac OS X
Luís,
Fazes bem.
É a melhor maneira de se praticar. Já agora, pelo que me dizes, parece uma óptima situação para implementares o chamado Hijax!
http://domscripting.com/blog/display/41
http://domscripting.com/presentations/xtech2006/
Hugo Fernandes
28 de Maio de 2008 ás 12:00 [s] []
A usar Mozilla Firefox 2.0.0.14 em Windows XP
Novidades Dextro?
Dextro
28 de Maio de 2008 ás 16:25 []
A usar Mozilla Firefox 3.0 em Windows XP
@André Luís: nem me lembrei disso mas é exactamente aquilo que eu quero fazer: algo que degrade bem e que mesmo assim tenha os efeitos tão habituais da chamada “web 2.0″ (o carregamento sem mudar a pagina, os efeitos visuais, etc…)
Um Português
29 de Maio de 2008 ás 08:41 []
A usar Opera 9.50 em Linux
“responsiva”?? “degrade”?? o “acôrdo” ortográfico já chegou? mais que “degrade”, chega a ser degradante…
Dextro
29 de Maio de 2008 ás 08:46 []
A usar Mozilla Firefox 3.0 em Linux
Oh meu amigo “Um Português”, eu até sou contra o acordo ortográfico mas, quando estamos a falar de termos informáticos, onde está o mal em usar as palavras “responsiva” e “degrade”? Gíria profissional conhece?
PS: E a cobardia também não é bonita.
andrezero
30 de Maio de 2008 ás 21:17 [s] []
A usar Mozilla Firefox 2.0.0.14 em Windows Vista
já tens aqui bastante matéria para te iniciar mas gostava de acrescentar algumas dicas que podem ser úteis, principalmente relativamente à estrutura da tua aplicação
o ideal é o teu backend isolar o tratamento dos requests (vulgo actions numa arquitectura MVC) por forma a poder servir qualquer (todo e qualquer) conteúdo ou tratar qualquer post (todo e qualquer post) da mesma forma…
…quer se trate de um pedido “normal” ou ajaxizado (esta é para o tal do português)
o html servido deve sempre conter todos os links e acções de forms na forma natural (request completo) e só depois, onload, deverás atacar os A’s com um script JS que faça o bind do onclick
qualquer coisa como el.onclick = “handleajax(param, param, param); return false;”
o ideal é usares uma framework JS, eu aconselho JQuery, mas o protoype também serve
se os scripts php forem teus terás toda a flexibilidade (mas algum trabalho, claro) para criar esse nivel de abstração
eu uso sempre dois front-controllers index.php e ajax.php
ambos vão invocar a mesma acção, ou seja correr o mesmo código que faz a query (por exemplo) e preparar a resposta
mas um devolve um layout completo e outro devolve o conteúdo para o JS, em xml ou json
estruturas a tua aplicação, isolando o código que trata os parâmetros e prepara os dados é muito útil… o desafio de tornar todas, todas, todas as acções ajaxizáveis (e arrefinfa outra vez no tal português) é muito interessante
Dextro
30 de Maio de 2008 ás 22:08 []
A usar Unbranded Firefox 2.0.0.14 em Linux
Eu já tenho funções/metodos independentes que efectuam os pedidos todos logo não me custa nada fazer um ajax.php para lidar de forma “Ajaxizada” os dados.
Obrigado pelas dicas, conselhos nunca são demais apesar de já me terem dito para eu fugir do jQuery.
André Luís
30 de Maio de 2008 ás 23:49 [s] []
A usar Mozilla Firefox 2.0.0.14 em Mac OS X
Fugir do jQuery? Só se for pró DomAssistant do R. Nyman!