Para el desarrollo que estoy llebando a cabo me gustaria disponer de una especie de "zonas calientes" que se autocomporbasen a si mismo.
Algo asi como que dichas zonas comporbasen una determinada variable y pintasen en cada momento su valor, pero que la comporbacion se desencadenase automaticamente.
Algo asi como ocurre cuando te llega un nuevo correo a una cuenta de gmail, que no se necesita recargar la web, ésta se recarga ella sola cuando detecta que llega un nuevo mensaje.
Os explico un pequeño resumen de cual es mi estructura.
Dispongo de una web normal con esta estructura
Código:
Esa funcion devuelve un valor dependiendo de una serie de acciones, supongamos por ejemplo<html> <head> ... </head> <body> .... <?php funcion(); ?> ... </body>
Código:
Y ademas se dispone de otra funcion que modifica el valor de dicha variable de sesionfunction funcion(){ return $_SESSION['contador']++; }
Código:
Cone sto se conseguiria que, de poderse hacer esa consulta automatica a la funcion "funcion()", si desde otra parte de la web, bajo la misma sesion se accediera a "funcion2()", el valor a mostrar en la web cambiaria automaticamente.function funcion2(){ $_SESSION['contador']=2; }
No se si me he explicado con claridad, pero vamos, el ejemplo de la llegada de correos a gmail es exactamente lo que busco.
Como hacer eso con PHP y AJAX, con algun framework o con algo que se lo parezca.
Lo mas importante es que dicha ejecucion o comprobacion, se debe hacer sde manera trasparente, sin intervencion de usuario.
Esa idea de "zonas calientes" que ejecuten algo, bien sea una comporbacion o la ejecucion de algo, me parece algo que cae dentro de las funcionalidades aplicadas de ajax y me ha extrañado no encontar nada.
He porbado a usar algo como esto:
Usar javascript para la ejecucion de un fichero php que contiene la funcion "funcion()"
Código:
Y en la web llamar a este script de javascriptfunction objetoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function funcion(){ divResultado = document.getElementById('res'); //divResultado.innerHTML= '<img src="./load.gif"> <b>Verificando la existencia del fichero</b>.'; var ruta='./fichero_php_con_funcion.php'; // <------ FICHERO CON funcion() ajax=objetoAjax(); ajax.open("GET", ruta); ajax.onreadystatechange=function() { if (ajax.readyState==4) { divResultado.innerHTML = ajax.responseText } else { } } ajax.send(null) setTimeout("funcion()",1000); <--- LLAMADA AUTOMATICA A SI MISMA }
Código:
Pero el resultado no es el deseado.... me imagino xq esta solucion es bastante chapucera <html> <head> ... </head> <body> .... <script> funcion(); </script> ... </body>
De manera que si el post no ha quedado demasiado lioso (por haber intentado explicar con varios ejemplos lo que intento hacer), si alguien consigue darme un poquito de luz por donde buscar, lo agradeceria mucho.