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

Aplicasión ajax para refrescar sección.

Estas en el tema de Aplicasión ajax para refrescar sección. en el foro de Frameworks JS en Foros del Web. A ver si me se explicar Necesito ayuda con algún código en Ajax, mis disculpas si este tema se parece a otros que de seguro ...
  #1 (permalink)  
Antiguo 19/03/2009, 18:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Aplicasión ajax para refrescar sección.

A ver si me se explicar

Necesito ayuda con algún código en Ajax, mis disculpas si este tema se parece a otros que de seguro están posteados aquí, solo quiero expresar mi situación.

Lo que estoy buscando es actualizar de manera transparente y sin que se cargue la pagina completa la información de una tabla de tres columnas y varias filas.

La tabla estará situada, por ejemplo, en una pagina que llamaremos "pizarra.htm" y en el home o cualquier otro sitio pondremos un DIV donde se cargará la tabla completa que esta en "pizarra.htm" con actualizaciones de 5 ó 10 segundos.

Cuando yo coloque una nueva información en la tabla, subo la pagina "pizarra.htm" que la contiene y Ajax hará la consulta de esa pagina y enviarla de regreso al, ya actualizada al DIV de manera transparente.

Resumiendo, lo que busco es alguna idea que me ayude en esta tarea, pués usaba un Refresh en un iframe y cuando actualizaba la pagina y chocaba con el refresh de un usaurio daba un error 404 o mas bien, pagina NO encontrada y el usuario tenia que usar la tecla F-5 para volver a cargar la pagina.

Uso en la actualidad un código que han puesto mucho en este foro y que corre muy bien en Firefox, no así en Internet Explorer, creo que por asunto de Cache, muchos usuarios aun usan Internet Explorer, cuando entran ven la sección pero esta no se refresca por nada del mundo.

Si me dan una idea sobre esto o me muestran algún código en Ajax que me ayude, se lo agradeceré.

Muchas gracias todos desde ya…
  #2 (permalink)  
Antiguo 20/03/2009, 23:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

El problema es que has expuesto un problema demasiado extenso sin decirnos qué has intentado o qué es lo que está fallando.

Tal vez si divides los problemas en partes más pequeñas y nos dices dónde no consigues avanzar podremos ayudarte mejor .

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/03/2009, 15:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

Quise dar una explicacion de lo que quiero.

Tengo este codigo que encontre por ahí:

Cita:
<script language="javascript" type="text/javascript">
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest(); /* p.e. Firefox */
} catch(err1) {
try {
req = new Actict("Msxm12.XMLHTTP");
/* algunas versiones IE */
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
/* algunas versiones IE */
} catch (err3) {
req = false;
}
}
}
return req;
}

var http = getXMLHTTPRequest();

var RequestObject = false;
var Archivo = 'pizarra.htm';
window.setInterval("actualizacion_reloj()", 5000);
if (window.XMLHttpRequest)
RequestObject = new XMLHttpRequest();
if (window.ActiveXObject)
("Microsoft.XMLHTTP");
function ReqChange() {
if (RequestObject.readyState==4) {
if (RequestObject.responseText.indexOf('invalid') == -1)
{ var .split('|');
document.getElementById("online").innerHTML = msgs[0];
} } }
function llamadaAjax() {
RequestObject.open("GET", Archivo , true);
RequestObject.onreadystatechange = ReqChange;
} function actualizacion_reloj() {
llamadaAjax();
}
</script>

En Firerox se actualiza bien, solo algo, que por ahora no me preocupa mucho y es que cuando entramos a la pagina donde esta el DIV esta tarda los 5 segundos que tiene de refresh del codigo para mostrar lo que hay en ese Div, o sea, no sale inmediatamente uno entra a la pagina. Pero solo es al entrar, despues refresca bien.

El problema es en Interenet Explorer, en este navegador no se ven las actualizaciones y supongo que es por el Cache.

¿Alguna idea para hacer este tipo de cosas que funcione en todos los navegadoes o existe otro metodo mejor?

Gracias.

Última edición por rickyl; 22/03/2009 a las 09:52
  #4 (permalink)  
Antiguo 21/03/2009, 18:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

Una de las cosas que puedes hacer para evitar problemas con la caché del navegador es agregar un número aleatorio a la URL. Por ejemplo:
Código javascript:
Ver original
  1. var Archivo = 'pizarra.htm?rand=' + Math.random();
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 21/03/2009, 19:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

Gracias David por responder.

El problema sí se resuelve con el número Aleatorio ya que ante ni con Control + F5 se actualizaba la web, pero sigue sin surtir efecto en las actualizaciones automaticas con el código en Ajax.
  #6 (permalink)  
Antiguo 21/03/2009, 20:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

¿A qué te refieres con actualizaciones automáticas? Sólo tienes que aplicar el mismo procedimiento (agregar un número aleatorio a la URL) para cualquier petición HTTP que hagas usando AJAX.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 21/03/2009, 20:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

A lo que me refiero es que en Firerox, cuando yo actualizo la pagina pizarra, Ajax se encarga de llevar las actualizaciones que haga, de manera automática o transparente al sitio donde tento hubicado el Div.

Lo que no comprendo mucho es lo del número aleatorio que dices, yo lo que hice fue reemplazar la linea de codigo que me ofreciste por que ya tenía.

Si me orientas mejor sería un exito y gracias por tu tiempo y amabilidad David.
  #8 (permalink)  
Antiguo 21/03/2009, 21:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

O sea, en Firefox funciona pero en Internet Explorer no, ¿es eso lo que está sucediendo?

Aún colocando el número aleatorio a la petición (con la línea que indiqué), ¿sigue sin actualizar en Internet Explorer? ¿es ese el problema o algún otro?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 21/03/2009, 21:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

Exacto, no se actualiza en Internet Explorer y en Firefox sí.
  #10 (permalink)  
Antiguo 21/03/2009, 21:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

Haz lo siguiente, deja la línea anterior como estaba en un principio:
Código javascript:
Ver original
  1. var Archivo = 'pizarra.htm';
Y modifica esta línea:
Código javascript:
Ver original
  1. RequestObject.open("GET", Archivo , true);
Por esta:
Código javascript:
Ver original
  1. RequestObject.open("GET", Archivo + '?rand=' + Math.random() , true);
Ya que, lo que estaba pasando era que el número aleatorio se agregaba a la dirección una sóla vez.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 21/03/2009, 21:45
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

David, EXCELNTE hermano, ahora sí está mandando el refresh.

Un último detalle, esto para los dos navegadores (IE y FF).

Cuando abro la página que contiene el DIV, la página Pizarra no sale hasta transcurrir 5 Segundos, los mismos que yo le asigné al código para que haga la consulta al servidor.

¿Existe la posibilidad de que imediatamente carguemos la página que contiene el Div salga la Pizarra enseguida?
  #12 (permalink)  
Antiguo 21/03/2009, 21:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Aplicasión ajax para refrescar sección.

Una forma sería llamara la función actualizacion_reloj justo después de terminar de cargar la página usando el evento onload:
Código javascript:
Ver original
  1. window.onload = actualizacion_reloj;
Aunque, si dispones de un lenguaje de servidor (ASP, PHP, etc.) podrías incluir la página directamente en el contenido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 21/03/2009, 22:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Aplicasión ajax para refrescar sección.

Mucchas gracias David por servirme de ayuda. Veo que eres conocedor del asunto.

Si gustas enviarme en un PM tu dirección de MSN, quizas podamos desarrollar una aplicasión mucho mejor preparada para mi web gratificando, claro está, tu trabajo.

Muchas gracias.

Deja ahora probar la línea de código última que me diste.
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 18:08.