Geralmente, quando eu baixo scripts de chat, sempre vejo terríveis códigos HTML ou JavaScript, para poder atualizar a página e obter as novas mensagens. Isso é totalmente inútil.
Além de ser cansativo para o usuário, gasta banda do servidor e até torra o limite de download do usuário (quando ele usa internet limitada).
Vou mostrar que isso é totalmente inútil, e que podemos atualizar apenas determinado conteúdo da página, sem que a página carregue por inteira novamente.
Para isso, vamos criar um simples script que de tempos em tempos, exibe um número randômico qualquer.
Teremos dois arquivos: index.html e numero.php.
A lógica é a seguinte: o arquivo index.html terá uma Div que será atualizada semantica e dinamicamente, obtendo novos conteúdos da página em numero.php. Muito simples, não? O código é ainda mais simples. Vamos usar AJAX!
numero.php
Não há mistério neste arquivo. Ele apenas exibe um novo número qualquer a cada nova requisição à página.
index.html
Configurado o que indico por comentários, vamos atualizar apenas a div de identificação "ReloadThis".
Simples, não é mesmo?
Além de ser cansativo para o usuário, gasta banda do servidor e até torra o limite de download do usuário (quando ele usa internet limitada).
Vou mostrar que isso é totalmente inútil, e que podemos atualizar apenas determinado conteúdo da página, sem que a página carregue por inteira novamente.
Para isso, vamos criar um simples script que de tempos em tempos, exibe um número randômico qualquer.
Teremos dois arquivos: index.html e numero.php.
A lógica é a seguinte: o arquivo index.html terá uma Div que será atualizada semantica e dinamicamente, obtendo novos conteúdos da página em numero.php. Muito simples, não? O código é ainda mais simples. Vamos usar AJAX!
numero.php
Código PHP:
<?php
echo rand();
?>
index.html
Código HTML:
<html> <body> <script type="text/javascript"> function Ajax(){ var xmlHttp; try{ xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari } catch (e){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("No AJAX!?"); return false; } } } xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText; setTimeout('Ajax()',10); } } xmlHttp.open("GET","numero.php",true); // aqui configuramos o arquivo xmlHttp.send(null); } window.onload=function(){ setTimeout('Ajax()',10); // aqui o tempo entre uma atualização e outra } </script> <div id="ReloadThis"></div> </body> </html>
Simples, não é mesmo?
Comment