Foros del Web » Programando para Internet » PHP »

Sistema de tiempo real.

Estas en el tema de Sistema de tiempo real. en el foro de PHP en Foros del Web. Saludos amigos del foros les tengo una pregunta que en realidad lo tengo desde el comienzo del trabajo de mi pagina, pero bueno es asunto ...
  #1 (permalink)  
Antiguo 10/06/2012, 14:56
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Sistema de tiempo real.

Saludos amigos del foros les tengo una pregunta que en realidad lo tengo desde el comienzo del trabajo de mi pagina, pero bueno es asunto es que tengo una página de noticia similar así que en cualquier momento coloque una noticia y en ese instante todos lo vean
Buenos he utilizado varios códigos Javascript para que actualice en cada cierto tiempo pero cada vez que actualiza hay usuarios que seleccionan el texto pero en ese momento viene otro notica pero al actualizar se borra automáticamente lo seleccionado y de todos modos así venga una nuevo noticia siempre en tres segundo pasa eso mismo pero al pensarlo bien si en mi pagina visitan más de 100 personas puede causar un problema en el sistema pero la pregunta es:

¿Cómo puede hacer un actualizador de comentarios cuando haya una nueva noticia y que no borre lo seleccionada de cualquier otro comentario viejo?
  #2 (permalink)  
Antiguo 10/06/2012, 15:42
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sistema de tiempo real.

Cita:
Iniciado por Requenaeo Ver Mensaje
Saludos amigos del foros les tengo una pregunta que en realidad lo tengo desde el comienzo del trabajo de mi pagina, pero bueno es asunto es que tengo una página de noticia similar así que en cualquier momento coloque una noticia y en ese instante todos lo vean
Buenos he utilizado varios códigos Javascript para que actualice en cada cierto tiempo pero cada vez que actualiza hay usuarios que seleccionan el texto pero en ese momento viene otro notica pero al actualizar se borra automáticamente lo seleccionado y de todos modos así venga una nuevo noticia siempre en tres segundo pasa eso mismo pero al pensarlo bien si en mi pagina visitan más de 100 personas puede causar un problema en el sistema pero la pregunta es:

¿Cómo puede hacer un actualizador de comentarios cuando haya una nueva noticia y que no borre lo seleccionada de cualquier otro comentario viejo?
Tenes que hacerlo vía AJAX, y que si no hay noticias nuevas no cambie el HTML. Y si hay nuevas noticias, que agregue las nuevas, pero que no edite todo el código html de X div.

PD: Para ayudarte mas, tenes que dejar el código

Saludos
  #3 (permalink)  
Antiguo 10/06/2012, 16:35
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sistema de tiempo real.

ok no hay problema yo tengo entendido que es por ajax pero toda los codigo que he hecho simpre hace lo ya dicho borra lo seleccionado de todo modaos te voy a dejar 2 codigo para que lo veas
Código Javascript:
Ver original
  1. var seconds = 3; // el tiempo en que se refresca
  2.     var divid = "comment-conte"; // el div que quieres actualizar!
  3.     var url = "comentarios.php"; // el archivo que ira en el div
  4.  
  5.     function refreshdiv(){
  6.  
  7.         // The XMLHttpRequest object
  8.  
  9.         var xmlHttp;
  10.         try{
  11.             xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
  12.         }
  13.         catch (e){
  14.             try{
  15.                 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
  16.             }
  17.             catch (e){
  18.                 try{
  19.                     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  20.                 }
  21.                 catch (e){
  22.                     alert("Tu explorador no soporta AJAX.");
  23.                     return false;
  24.                 }
  25.             }
  26.         }
  27.  
  28.         // Timestamp for preventing IE caching the GET request
  29.         var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
  30.         var nocacheurl = url+"?t="+timestamp;
  31.  
  32.         // The code...
  33.  
  34.         xmlHttp.onreadystatechange=function(){
  35.             if(xmlHttp.readyState== 4 && xmlHttp.readyState != null){
  36.                 document.getElementById(divid).innerHTML=xmlHttp.responseText;
  37.                 setTimeout('refreshdiv()',seconds*1000);
  38.             }
  39.         }
  40.         xmlHttp.open("GET",nocacheurl,true);
  41.         xmlHttp.send(null);
  42.     }
  43.  
  44.     // Empieza la función de refrescar
  45.  
  46.     window.onload = function(){
  47.         refreshdiv(); // corremos inmediatamente la funcion
  48.     }
este es el que yo naturalmente utilizo

Código Javascript:
Ver original
  1. var UltFec;
  2. function consultaMensajes(){
  3.   divResultado = document.getElementById('pagina');
  4.   ajax=objetoAjax();
  5.   ajax.open("GET", "consulta.php?ultfec="+UltFec,true);
  6.   ajax.onreadystatechange=function() {
  7.    if (ajax.readyState==4) {
  8.     //obtenemos los resultados XML;
  9.     var datos=ajax.responseXML.documentElement;
  10.     //mediante manejo de DOM accedemos a los elementos del XML
  11.     for (i = 0; i < datos.getElementsByTagName('elemento').length; i++){
  12.      var item = datos.getElementsByTagName('elemento')[i];
  13.      var fec = item.getElementsByTagName('fecha')[0].firstChild.data;
  14.      var usu = item.getElementsByTagName('usuario')[0].firstChild.data;
  15.      var men = item.getElementsByTagName('mensaje')[0].firstChild.data;
  16.      var linea='<div class="c_fecha">'+fec+'</div><div class="c_usuario">'+usu+'</div><div class="c_mensaje">'+men+'</div>';
  17.      CrearCaja(linea);
  18.     }
  19.     //si ultima fecha esta definida se usará
  20.     //caso contrario se dejara con su valor anterior
  21.     if(typeof fec!='undefined'){
  22.      UltFec=fec;
  23.     }
  24.    }
  25.   }
  26.   ajax.send(null)
  27.   //consultar mensaje nuevos cada 3 seg.
  28.   setTimeout('consultaMensajes();',3000);
  29.  }
  30.  
  31. //cuando se carga la pagina principal consultamos los mensajes
  32.  window.onload = function (){
  33.   consultaMensajes();
  34.  }
este otro lo descubri pero e tenenidos varios inconveniente como que al pasa los comentarios que los pide en XML siempre se repiten una y otro vez.
  #4 (permalink)  
Antiguo 10/06/2012, 22:02
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sistema de tiempo real.

Tenes que usar el segundo, ya que crea una nueva div para cada nuevo resultado, lo que tenes que hacer es buscar la forma para que busque apartir de la ID que se mostro en pantalla.

Ejemplo en la base de datos tenes las ID del 1 al 13, el visitante entro a tu pagina web y solo había 10, a la hora de que ajax se ponga en marcha tenes que pasarle ese ID 10 para que solo te imprima los restante 11 12 y 13.

PD: Podes adaptar el segundo con el primero, y problema resueltos. Te recomiendo preguntarlo en Javascript/Ajax

Saludos
  #5 (permalink)  
Antiguo 11/06/2012, 14:38
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sistema de tiempo real.

en realida no te entendi bien??
  #6 (permalink)  
Antiguo 11/06/2012, 14:46
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sistema de tiempo real.

podras explicar con codigop si quieres solo la mitad por que en realidad no se como ubicarme
  #7 (permalink)  
Antiguo 11/06/2012, 15:38
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 14 años, 1 mes
Puntos: 84
Respuesta: Sistema de tiempo real.

Basicamente es lo que te dicen.

Cada vez que obtengas noticias nuevas, lo que tienes que hacer es agregar un bloque adicional por cada noticia justo encima de las antiguas, no actualizar todas las noticias para mostrar las antiguas y las nuevas.

Es decir, Si tenemos esta numeracion:

D
C
B
A

Cuando toque la E , solo deberia aparecer la E enciam de DCBA , no deberia dibujar EDCBA
__________________
» Presupuesto Pagina Web
  #8 (permalink)  
Antiguo 11/06/2012, 15:51
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sistema de tiempo real.

ah ok, es decir lo codigo que mostre esta bien solamente tengo que agregar ese script que al repetir el mismo datos no actualizar.

pero la pregunta es como puedo hacer eso por que en realidad estoy enredado con el script como puede colocarlo
  #9 (permalink)  
Antiguo 11/06/2012, 18:30
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sistema de tiempo real.

Vas a tener que usar en javascript "createElement" y "appendChild", te recomiendo buscar sobre ello en google. Y hacer la misma pregunta en el apartador correspondiente en el foro.

Saludos
  #10 (permalink)  
Antiguo 12/06/2012, 05:51
 
Fecha de Ingreso: marzo-2011
Ubicación: Punta de Mata
Mensajes: 106
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Sistema de tiempo real.

Cita:
Iniciado por marcofbb Ver Mensaje
Vas a tener que usar en javascript "createElement" y "appendChild", te recomiendo buscar sobre ello en google. Y hacer la misma pregunta en el apartador correspondiente en el foro.

Saludos
encontre uno pero al parecer no tiene comunicacion con php asi que es este

Código Javascript:
Ver original
  1. <input type=”text” id=”texto” />
  2. <input type=”button” value=”Crear” onclick=”crear()/>
  3. <ul id=”lista”></ul>
  4. <script type=”text/javascript”>
  5. function crear() {
  6.       // Obtenemos el valor entrado en la caja de texto
  7.       var valor = document.getElementById(“texto”).value;
  8.       // Creamos un nuevo elemento LI
  9.       var li = document.createElement(“LI”);
  10.       // Añadimos el valor introducido al nuevo elemento
  11.       li.innerHTML = valor;
  12.       // Añadimos el elemento LI a la lista UL
  13.       var ul = document.getElementById(“UL”);
  14.       ul.appendChild(li);
  15.       // Vaciamos la caja de texto
  16.       document.getElementById(“texto”).value = “”;
  17. }
  18. </script>
como le incorpora para consultar a archivos php. por favor ayuda

Etiquetas: javascript+php, php+ajax
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 01:16.