lunes, 25 de junio de 2012

Código AJAX para actualizar div e id.

A continuación les dejo un código para actualizar por meio de AJAX, los div e id de nuestras aplicaciones web sin la necesidad de cargar toda la paginá y así evitar lentitud, además de sobrcargarla. El siguiente códico lo podemos copiar entre las etiquetas <head> </head> ó podemos guardarlo en un archivo javascript con extensión ".js".
1<script type="text/javascript" language="javascript">
2function refreshDivs(divid,secs,url)
3{
4 
5// define our vars
6var divid,secs,url,fetch_unix_timestamp;
7 
8// Chequeamos que las variables no esten vacias..
9if(divid == ""){ alert('Error: escribe el id del div que quieres refrescar'); return;}
10else if(!document.getElementById(divid)){ alert('Error: el Div ID selectionado no esta definido: '+divid); return;}
11else if(secs == ""){ alert('Error: indica la cantidad de segundos que quieres que el div se refresque'); return;}
12else if(url == ""){ alert('Error: la URL del documento que quieres cargar en el div no puede estar vacia.'); return;}
13 
14// The XMLHttpRequest object
15 
16var xmlHttp;
17try{
18xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
19}
20catch (e){
21try{
22xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
23}
24catch (e){
25try{
26xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
27}
28catch (e){
29alert("Tu explorador no soporta AJAX.");
30return false;
31}
32}
33}
34 
35// Timestamp para evitar que se cachee el array GET
36 
37fetch_unix_timestamp = function()
38{
39return parseInt(new Date().getTime().toString().substring(0, 10))
40}
41 
42var timestamp = fetch_unix_timestamp();
43var nocacheurl = url+"?t="+timestamp;
44 
45// the ajax call
46xmlHttp.onreadystatechange=function(){
47if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
48document.getElementById(divid).innerHTML=xmlHttp.responseText;
49setTimeout(function(){refreshDivs(divid,secs,url);},secs*1000);
50}
51}
52xmlHttp.open("GET",nocacheurl,true);
53xmlHttp.send(null);
54}
55 
56// LLamamos las funciones con los repectivos parametros de los DIVs que queremos refrescar.
57window.onload = function startrefresh(){
58refreshDivs('div1',5,'div1.php');
59refreshDivs('div2',3,'div2.php');
60refreshDivs('div3',10,'div3.php');
61}
62</script>
La parte del código donde indicamos que divs hay que refrescar es la siguiente:
1window.onload = function startrefresh(){
2refreshDivs('div1',5,'div1.php');
3refreshDivs('div2',3,'div2.php');
4refreshDivs('div3',10,'div3.php');
5}