Foros del Web » Programando para Internet » Javascript »

Actualizacion de un div con ajax

Estas en el tema de Actualizacion de un div con ajax en el foro de Javascript en Foros del Web. Estoy usando un codigo que encontre en internet para actualizar elementos utilizando ajax es este codigo http://vcomputadoras.com/usa-ajax-pa...ar-un-tag-div/ y funciona perfectamente si no es por un ...
  #1 (permalink)  
Antiguo 29/07/2012, 20:57
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Pregunta Actualizacion de un div con ajax

Estoy usando un codigo que encontre en internet para actualizar elementos utilizando ajax es este codigo

http://vcomputadoras.com/usa-ajax-pa...ar-un-tag-div/

y funciona perfectamente si no es por un pequeño detalle que cuando quiero actualizar una cosulta que trae imagenes se nota cuando las imagenes se actualizan y se ven parpadiando lo raro es que solo pasa en google crome y en internet explored como puedo arreglar eso ?
  #2 (permalink)  
Antiguo 30/07/2012, 07:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Actualizacion de un div con ajax

ese ejemplo es obsoleto, consulte un manual de AJAX, se debe evaluar el XmlHttpRequestInstance.status == 200 además del readyState == 4, por ello papadea
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/07/2012, 19:40
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

Me podrias ayudar un poco por que no entiendo o me recomendarias otro codigo a usar del mismo estilo
  #4 (permalink)  
Antiguo 31/07/2012, 07:50
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Actualizacion de un div con ajax

ya le indique que se resuelve evaluando XmlHttpRequestInstance.status == 200 además del readyState == 4, por favor consulte un manual de AJAX:

http://librosweb.es/ajax/index.html

la diferencia entre sólo usar AJAX y realmente saber como funciona marca la deferencia para sacar provecho de la técnica y evitar cometer errores comunes como el ejemplo anterior.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 31/07/2012, 20:23
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

No es que realmento nose nada de ajax estoy recien aprediendo de este tecnologia pero leere el manual Gracias :D
  #6 (permalink)  
Antiguo 01/08/2012, 16:38
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

ajjajajajajajaj Estaba leyendo el manual equivocado por que uno le hace click al primer capitulo y en el segundo cambia al manual de javascript por eso yo decia por que tanto javasript wujsajjaja
  #7 (permalink)  
Antiguo 01/08/2012, 19:20
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

No sigue funcionando mal miralo ya leei el manual ajsasjaj y cambie lo que me dijiste pero cuando subo una foto y la pagina se empieza actualizar el scroll se mueve como loco y la foto parpadea pero no pasa en otro nav solo en crome lo que pasa es que estoy haciendo un sistema de publicaciones tipo facebook y quiero que se actualize en forma real pero al subir una foto a la publicacion se actualiza perfecto pero empieza como si la estuviera cargando y parpadea y solo lo hace un rato luego de ese rato el error que sucede es qe el scroll se mueve solo
este es el codigo
Código Javascript:
Ver original
  1. var seconds = conf.tiempo; // el tiempo en que se refresca
  2.     var divid = conf.divisor; // el div que quieres actualizar!
  3.     var url = conf.url; // el archivo que ira en el div
  4.     function refreshdiv(){
  5.  
  6.         // The XMLHttpRequest object
  7.  
  8.         var xmlHttp;
  9.         try{
  10.             xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
  11.         }
  12.         catch (e){
  13.             try{
  14.                 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
  15.             }
  16.             catch (e){
  17.                 try{
  18.                     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  19.                 }
  20.                 catch (e){
  21.                     alert("Tu explorador no soporta AJAX.");
  22.                     return false;
  23.                 }
  24.             }
  25.         }
  26.  
  27.         // Timestamp for preventing IE caching the GET request
  28.         var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
  29.         var nocacheurl = url+"?t="+timestamp;
  30.  
  31.         // The code...
  32.  
  33.         xmlHttp.onreadystatechange=function(){
  34.             if(xmlHttp.readyState== 4 && xmlHttp.readyState != null && xmlHttp.status == 200){
  35.                 document.getElementById(divid).innerHTML=xmlHttp.responseText;
  36.                 setTimeout(refreshdiv(),seconds*1000);
  37.             }
  38.         }
  39.         xmlHttp.open("GET",nocacheurl,true);
  40.         xmlHttp.send(null);
  41.     }
  42.  
  43.     // Empieza la función de refrescar
  44.  
  45.     window.onload = function(){
  46.         refreshdiv(); // corremos inmediatamente la funcion
  47.     }
  #8 (permalink)  
Antiguo 02/08/2012, 07:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Actualizacion de un div con ajax

bueno al menos ya resolvimos el primer punto para descartar que AJAX sea el problema, lo que nos deja con los errores de impelmentación (sí, lo tenia fríamente calculado, soy muy malo)

ahora que sé que quieres emular facebook lamento decirte que como lo tienes (polling tradicional) no es precisamente la forma más optima de hacerlo debido al alto consumo de ancho de banda, porque Facebook utiliza COMET, en tal caso las alternativas van desde AJAX longpolling, HTML5 webSockets, APE entre otras.

Por otro lado y con respecto al que se te desplaza el scroll ten en cuenta que puede depender del layout y el como devuelvas las fotos en la respuesta AJAX, veo que haces un innerHTML y dependiendo del tamaño de la foto y la posición actual es normal que pase, las alternativas pueden ser o controlar el tamaño de las imágenes o verificar el tamaño de las mismas y compensar el scroll.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 02/08/2012, 17:51
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

mira cambie el codigo a jquery despues de leer el manual completo de ajax comprendi que lo que era y creo que no lo sabia pero cree un plugin con jquery que hace la misma funcion pero sucede el mismo problema pero lo raro es que solo en Google Crome porque ?
Código Javascript:
Ver original
  1. var seconds = conf.tiempo; // el tiempo en que se refresca
  2.     var divid = conf.divisor; // el div que quieres actualizar!
  3.  
  4.         setInterval(function(){
  5.            $(divid).load(location.href+' '+divid);
  6.         },seconds*1000)

ese es el codigo que hice XD el puglin completo es este:
Código Javascript:
Ver original
  1. jQuery.fn.actualizar = function(opciones) {
  2.     var conf = {
  3.         tiempo : 5,
  4.         divisor : "#nombre",
  5.     };
  6. jQuery.extend(conf, opciones);
  7.  
  8. this.each(function(){
  9.  
  10.     var seconds = conf.tiempo; // el tiempo en que se refresca
  11.     var divid = conf.divisor; // el div que quieres actualizar!
  12.  
  13.         setInterval(function(){
  14.            $(divid).load(location.href+' '+divid);
  15.         },seconds*1000);
  16. });
  17. return this;
  18. };

Y lo implemento de la siguiente manera :
Código Javascript:
Ver original
  1. $('#rooms').actualizar({
  2.             url : "<?php echo base_url(); ?>salas/all_rooms/consulta",
  3.             divisor : "#rooms",
  4.             tiempo : 2,
  5.         });

funciona perfecto excepto por ese maldito error en CROME ayudame debe haber alguna solucion es que nose aplicar ninguna otra cosa y no me quiero poner a leer un manual de 300 pagina solo para hacer esto

GRACIAS DE ANTE MANO POR TODA TU AYUDA
  #10 (permalink)  
Antiguo 02/08/2012, 19:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 3 meses
Puntos: 13
Respuesta: Actualizacion de un div con ajax

Tio, lo más fácil es que importes la librería JQuery

Entonces teniendo

<div id="elemento"></div>

Puedes hacer cosas como:

$('#elemento').load('pagina.html');

Más fácil...
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #11 (permalink)  
Antiguo 02/08/2012, 22:48
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Actualizacion de un div con ajax

de que estas hablando Bam_Margera lee bien el post esto es para actualizar en tiempo real XD no tengo ningun problema con implementacion de jquery y lo que me dices si lo se
  #12 (permalink)  
Antiguo 10/08/2012, 17:40
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
De acuerdo Respuesta: Actualizacion de un div con ajax

Cita:
Iniciado por xlos_mas_pro Ver Mensaje
de que estas hablando Bam_Margera lee bien el post esto es para actualizar en tiempo real XD no tengo ningun problema con implementacion de jquery y lo que me dices si lo se
Hola, cuando haces una llamada Ajax solo estan octeniendo una respuesta de tu servidor, no estas descargando el contenido en si, por ejemplo las fotos..

lo que manda el servidor es la direccion relativa de la foto, el explorador de el usuario empieza a descargar la foto..

y dependiendo de su velocidad , latencia esta se cargara.. de la forma en que se puede evitar es teniendo un cache de la foto que posiblemente se mandara..

o colocando un pequeño efecto que el ajax se esta cargando y en fondo en si se esta cargando la fotos que se an recivido en el ajax response..

Estoy totalmente deacurdo en que se deve testear el XmlHttpRequestInstance.status , pero en este caso no serviria de nada ya que este es especialmente importante para indicar si el documento al cual esta hasiendo la consulta fue encontrado , y note encontras con un 400 not found.. si tenemos el 200 nos indica que el documento se encontro satisfactoriamente..

Etiquetas: actualizar-elemento, ajax, div-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 14:21.