Foros del Web » Programando para Internet » Javascript » Frameworks JS »

actualizar informacion sin actualizar pagina

Estas en el tema de actualizar informacion sin actualizar pagina en el foro de Frameworks JS en Foros del Web. Buenas, tengo una pagina en php el cual me recopila una informacion de una base de datos... y en la pagina me aparece esto... Mensajes ...
  #1 (permalink)  
Antiguo 08/02/2009, 19:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 229
Antigüedad: 17 años
Puntos: 0
actualizar informacion sin actualizar pagina

Buenas, tengo una pagina en php el cual me recopila una informacion de una base de datos... y en la pagina me aparece esto...

Mensajes privados (0)

lo que yo quiero saber es como se puede hacer que cuando me llegue un mensaje ponga...

mensajes privados (1)

sin necesidad de actualizar la web...

me han comentado que se puede acer kn ajax...

Cita:
Amigo, eso lo puedes hacer solo con AJAX, mediante un Div o depediento lo que necesites
mercii
  #2 (permalink)  
Antiguo 09/02/2009, 08:33
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 16 años
Puntos: 19
Respuesta: actualizar informacion sin actualizar pagina

Si es bastante sencillo de hacer, con algo de jquery, dale una revisada a este tutorial

Y en el archivo miscript.php agregas la consuta sql que llama a los mensajes de la base de datos
  #3 (permalink)  
Antiguo 09/02/2009, 16:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 229
Antigüedad: 17 años
Puntos: 0
Respuesta: actualizar informacion sin actualizar pagina

este codigo funciona pero tiene un problema y es que el contenido que se actualiza parpadea todo el rato...

se puede hacer que no parpadee?

o por lo menos que solo se actualize si lo que va a poner es diferente a lo que hay?

mercii
  #4 (permalink)  
Antiguo 09/02/2009, 16:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: actualizar informacion sin actualizar pagina

Claro compara antes lo que hay, lo mejor es manipular el DOM, por ejemplo:
Código javascript:
Ver original
  1. var previousContent = '';
  2. // ----
  3.  
  4. if( previousContent != newContent ) {
  5.          previousContent = newContent;
  6.          element.innerHTML = newContent;
  7. }

Saludos
  #5 (permalink)  
Antiguo 09/02/2009, 17:00
 
Fecha de Ingreso: noviembre-2007
Mensajes: 229
Antigüedad: 17 años
Puntos: 0
Respuesta: actualizar informacion sin actualizar pagina

seguramente lo tendria que poner aqui no?

Código:
 function llamadaAjax() {  
  // Mensaje a mostrar mientras se obtiene la información remota... 
   var previousContent = '';
   document.getElementById("online").innerHTML = "";  
   // Preparamos la obtención de datos   
   RequestObject.open("GET", Archivo , true);  
   RequestObject.onreadystatechange = ReqChange;  
   // Enviamos   
   RequestObject.send(null);   
   }  
   function actualizacion_reloj() {  
   llamadaAjax();  
   }
pero como lo puedo poner por que justo estoy empezando aora kon javascript y ajax...

merciii
  #6 (permalink)  
Antiguo 09/02/2009, 17:27
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 16 años
Puntos: 19
Respuesta: actualizar informacion sin actualizar pagina

No entiendo porque complicarse con llamadas ajax si para eso estan los frameworks que lo hacen todo mucho mas sencillo, como el ejemplo que te di, al cual basta modificar el PHP
  #7 (permalink)  
Antiguo 10/02/2009, 04:47
 
Fecha de Ingreso: noviembre-2007
Mensajes: 229
Antigüedad: 17 años
Puntos: 0
Cita:
Iniciado por XLogus Ver Mensaje
No entiendo porque complicarse con llamadas ajax si para eso estan los frameworks que lo hacen todo mucho mas sencillo, como el ejemplo que te di, al cual basta modificar el PHP
probe el ejemplo que me pasaste pero no me funcionaba...

entonces luego encontre este que tengo, y me funciona pero me parpadea y no consigo hacer de que solo se me actualize cuando hay un cambio...

Código:
var RequestObject = false;   
   var Archivo = 'codes/online.php'; //directorio donde tenemos el archivo ajax.php 
  

   window.setInterval("actualizacion_reloj()", 1000); // el tiempo X que tardará en actualizarse   
   if (window.XMLHttpRequest) //   
 RequestObject = new XMLHttpRequest();  
 if (window.ActiveXObject)     
   RequestObject = new ActiveXObject("Microsoft.XMLHTTP");  
 function ReqChange() {  
 // Si se ha recibido la información correctamente  
   if (RequestObject.readyState==4) {  
   // si la información es válida   
   if (RequestObject.responseText.indexOf('invalid') == -1)   
   {   
   // obtener la respuesta   
   var msgs = RequestObject.responseText.split('|');  
   // Buscamos la div con id online   
   document.getElementById("online").innerHTML = msgs[0];  
   }  
   else {  
   // Por si hay algun error   
   document.getElementById("online").innerHTML = "Error llamando";  
   }  
   }  
   }  
 function llamadaAjax() {  
  // Mensaje a mostrar mientras se obtiene la información remota... 
   var previousContent = '';
   document.getElementById("online").innerHTML = "";  
   // Preparamos la obtención de datos   
   RequestObject.open("GET", Archivo , true);  
   RequestObject.onreadystatechange = ReqChange;  
   // Enviamos   
   RequestObject.send(null);   
   }  
   function actualizacion_reloj() {  
   llamadaAjax();  
   }

mercii

Conseguidooooo!!!


para el que lo quiera saber solo he tenido que quitar una frase...



Código:
 var RequestObject = false;   
   var Archivo = 'codes/online.php'; //directorio donde tenemos el archivo ajax.php 
  

   window.setInterval("actualizacion_reloj()", 1000); // el tiempo X que tardará en actualizarse   
   if (window.XMLHttpRequest) //   
 RequestObject = new XMLHttpRequest();  
 if (window.ActiveXObject)     
   RequestObject = new ActiveXObject("Microsoft.XMLHTTP");  
 function ReqChange() {  
 // Si se ha recibido la información correctamente  
   if (RequestObject.readyState==4) {  
   // si la información es válida   
   if (RequestObject.responseText.indexOf('invalid') == -1)   
   {   
   // obtener la respuesta   
   var msgs = RequestObject.responseText.split('|');  
   // Buscamos la div con id online   
   document.getElementById("online").innerHTML = msgs[0];  
   }  
   else {  
   // Por si hay algun error   
   document.getElementById("online").innerHTML = "Error llamando";  
   }  
   }  
   }  
 function llamadaAjax() {  
  // Mensaje a mostrar mientras se obtiene la información remota... 
   var previousContent = '';
   //document.getElementById("online").innerHTML = "";  
   // Preparamos la obtención de datos   
   RequestObject.open("GET", Archivo , true);  
   RequestObject.onreadystatechange = ReqChange;  
   // Enviamos   
   RequestObject.send(null);   
   }  
   function actualizacion_reloj() {  
   llamadaAjax();  
   }

la frase que me provodaba el parpadeo era esta...

Código:
document.getElementById("online").innerHTML = "";

Última edición por GatorV; 10/02/2009 a las 10:03
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:36.