Jump to content


Photo

Ajax...


  • Faça o login para participar
6 replies to this topic

#1 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 02/02/2008, 14:50

Eu sei, eu sei...

AJAX - Asynchrounous JavaScript and XML

Eu uso a jQuery tanto para requisições AJAX como pela facilidade de seus seletores, efeitos e etc.

Eu queria saber uma coisa. Eu sei que AJAX envolve XML, mas SOMENTE XML?

E se eu quisesse retornar alguma outra coisa que não AJAX? Como, por exemplo, um bom trecho HTML para, quem sabe, um sistema de navegação por abas não obstrusivo, já que o Klaus Stilbuero não achei tão não obstrusivo assim <_<

Eu sei que posso usar a propriedade html( valor ) da própria jQuery, mas não compreendo, XML não é HTML, não faz sentido.

Estou fazendo confusão no entendimento ou é realmente uma estrada de duas vias de possibilidades mesmo?

#2 § Kenshin §

§ Kenshin §

    I'm coming back...!

  • Usuários
  • 574 posts
  • Sexo:Masculino
  • Localidade:BA
  • Interesses:Sou fã de linguagens direcionadas para a web, como php, (x)html, xml, wml.
    Também gosto de webdesign e ultimamente tenho me dedicado mais a aprender css, mysql, javascript, ajax e actionscript.
    Trabalho com os programas Dreamweaver, Illustrator e Flash.

Posted 03/02/2008, 16:33

tb sou novo em ajax, mas pelo que entendi, o xml se refere ao principal objeto usado, o xmlhttprequest.
agora nos diversos exemplos de utilizacao do ajax que vi, o retorno eh geralmente, um codigo html resultante de alguma consulta a banco de dados, ou outra fonte qualquer.

da uma olhada na sessao de ajax, principalmente nos topicos pendurados.

qualquer duvida, posta ai.

vlw ^_^
Web Developer / Web Designer / Information Architect
"Living to learn... learning to live!"
Useful links: Rules | Search

#3 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 06/02/2008, 13:23

Não necessariamente precisa ser XML, já que o objeto possui a propriedade "reponseText". Mas dê preferência ao XML. Usando DOM existe uma facilidade ao munipulá-lo. Se for para retorna HTML pode ser feito assim:

<arquivo>
  <noticia id="01">
  <![CDATA[
	<b>Texto</b>
  ]]>
  </noticia>
</arquivo>

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#4 cruentus

cruentus

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 07/02/2008, 12:50

AJAX, assim como Web 2.0, é um termo praticamente marqueteiro que caiu na graça do povo... (a.k.a designers/desenvolvedores)

Como disse o bimonti, o certo seria usar XML pra isso. Mas a grande maioria simplesmente usa uma espécie de AJ (Asynchrounous JavaScript) :P

Eu mesmo raramente uso XML nos requests. Pra ser sincero, geralmente eu mando os valores que me interessam como texto, tipo JSON, parseio (nossa, que feio :P uhauhauha) e monto o HTML no JS mesmo, usando DOM.

#5 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 07/02/2008, 13:09

Eu pensei umas 20 vezes em JSON pra responder o tópico e acabei esquecendo. Tava apurado ontem ...

JSON também quebra um galho se você não utilizar XML. Tanto que linguagens como o PHP possuem funções para tal manipulação (encoder/decoder).
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#6 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 11/02/2008, 14:52

Bem, como além do foco da dúvida ta,mbém envolve o framework jQuery, vamos ver um exemplo:

[codebox] $("#username").blur(function()
{
var username = $( "input[@name=username]" ).val();

if( username == "" )
{
$( "#user-OK" ).hide();
$( "#user-Erro" ).show();
$( "#add" ).attr("disabled","disabled");

}
else
{
$.post(
"admin.php?act=clients&section=check_username",
{
username: username
},
function( data )
{
var retorno = parseInt($(data, 'username').text());

if( retorno )
{
$( "#user-OK" ).hide();
$( "#user-Erro" ).show();
$( "#add" ).attr("disabled","disabled");
}
else
{
$( "#user-OK" ).show();
$( "#user-Erro" ).hide();
$( "#add" ).removeAttr("disabled");
}
}
);
}
});
[/codebox]
Nesse código meu eu valido o nome de usuário do site, para ver se está cadastrado ou não. Liberando ou negando o clique no botão.

Só que vejam o PHP que eu uso com ele:

[codebox] header( 'Content-type: text/xml' );

$query = mysql_query( checkUser( $_POST['username'] ), $GLOBALS['link'] ) or die( db_error( mysql_errno() ) );

$result = mysql_num_rows( $query );

print "<principal>\n\t<username>" . $result . "</username>\n</principal>";
[/codebox]
** Onde checkUser é uma função que empacota a consulta para ser usada em outros locais.

Aí eu usei um print ridículo. Poderia muito bem criar um template Smarty com cabeçalho XML para que omretorno ficasse separado do código tal qual o resto de todo o visual do sistema.

Mas, pensando no futuro que preciso de um sistema de navegação em abas (ainda citei no primeiro post o sistema do Klaus Stilbuero), como que ficaria NA JQUERY? São essas coisas que não consigo entender.

Enquanto não avanço no projeto, tudo que tenho são especulações sobre o que sei.

Eu, sempre que posso, prezo pela não obstruisividade, para que as coisas funcionem com e sem AJAX. Mas não tenho idéia de como fazer, como citado, uma navegação (com ou sem abas) em AJAX.

Coloco a URL no HREF? Para funcionar sem JavaScript.
Pelo JavaScript, pego o parãmetro HREF e uso para jogar o conteúdo em uma DIV (com append() ou html() )?
A página que abrirá virá desde <html> até <html>, mas eu só preciso do conteúdo de uma DIV específica. Como "detecto" essa DIV pelo $.post ou $.get?

São essas pequenas faltas de informação que podem fazer confusão.

#7 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 13/02/2008, 09:29

Eu também tento deixar tudo funcionando com ou sem javascript, é melhor.
Quando é um sistema de navegação, eu coloco a url normal para a página que contém o conteúdo todo. Para fazer o script funcionar, eu mando o href do link para um arquivo que trata todos os ajax que preciso. Nesse arquivo eu pego o que preciso na url enviada e retorno o conteúdo.
Normalmente o que eu preciso sempre está em um banco de dados, então não tenho muito problema em exibir com o javascript ou em uma página normal, caso o javascript esteja desabilitado.

Como o conteúdo normalmente tem alguns htmls, eu prefiro usar o html().
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq