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

¿no funciona correctamente explorer 8 con Ajax?

Estas en el tema de ¿no funciona correctamente explorer 8 con Ajax? en el foro de Frameworks JS en Foros del Web. Hola gente , he intentado realizar el ejemplo de este enlace: http://www.forosdelweb.com/wiki/PHP:...varios_idiomas y con mozilla genial pero con explrer 8 no funciona. ¿a alguien se ...
  #1 (permalink)  
Antiguo 14/11/2009, 16:33
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 4 meses
Puntos: 8
¿no funciona correctamente explorer 8 con Ajax?

Hola gente , he intentado realizar el ejemplo de este enlace:
http://www.forosdelweb.com/wiki/PHP:...varios_idiomas
y con mozilla genial pero con explrer 8 no funciona.
¿a alguien se le ocurre porque?.

Gracias de antemano.
__________________
Videotutoriales de Drupal
  #2 (permalink)  
Antiguo 14/11/2009, 21:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

Podrías probar cambiando está línea:
Código PHP:
 ajax.open("GET""cambia_idioma.php?idioma="+idiomatrue); 
Por esta:
Código PHP:
 ajax.open("GET""cambia_idioma.php?idioma="+idioma+'&'+new Date().getTime(), true); 
Eso sería para evitar la caché que a veces es lo que genera problemas en Explorer. Quizá funcione, aunque no es seguro (en realidad hay que mejorar bastante ese código AJAX).
De cualquier manera, me parece ridículo usar AJAX de esa manera: para qué si luego termina refrescándose la página?
Creo que hubiera sido más práctico redireccionar directamente al archivo que actualiza la variable de sesión y, desde ese mismo archivo, volver a redireccionar a la página que solicitó el refresco, todo eso sin AJAX.
  #3 (permalink)  
Antiguo 15/11/2009, 04:27
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

Cita:
Iniciado por Panino5001 Ver Mensaje
Podrías probar cambiando está línea:
Código PHP:
 ajax.open("GET""cambia_idioma.php?idioma="+idiomatrue); 
Por esta:
[PHP]
ajax.open("GET", "cambia_idioma.php?idioma="+idioma+'&'+new Date().getTime(), true);

De cualquier manera, me parece ridículo usar AJAX de esa manera: para qué si luego termina refrescándose la página?
Creo que hubiera sido más práctico redireccionar directamente al archivo que actualiza la variable de sesión y, desde ese mismo archivo, volver a redireccionar a la página que solicitó el refresco, todo eso sin AJAX.
Bueno gracias amigo eso era lo que generaba el problema (estaría bien que alguien actualizara esa wiki de foros del web porque yo no se como poder hacerlo).
Lo de que sea o no ridículo estoy de acuerdo en parte contigo porque con PHP eso lo llevo haciendo hasta ahora como tu dices (pinchando en banderita y actualizando variable de sesión); de todas formas me apetecía usar Ajax porque javascript es mi punto débil y quiero lanzarme de una vez (por ese motivo entre otros).

Si no es mucho pedir podrías comentar algunos aspectos que podrían mejorar de ese scipt en concreto.

Un saludo y mil gracias
__________________
Videotutoriales de Drupal

Última edición por Dundee; 15/11/2009 a las 06:16
  #4 (permalink)  
Antiguo 15/11/2009, 06:13
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

Me alegra que te haya servido. Y sólo para aclarar, no está mal usar AJAX, todo lo contrario, pero justamente el que elegiste, por la manera en que está empleado, es un buen ejemplo de cómo no debe usarse. Si en lugar de refrescar la página tras actualizar la sesión hubiera actualizado también el contenido en el nuevo idioma sin refresco visible, hubiera estado bien, pero tal como se empleó, lo único que se consigue es hacer al menos un request innecesario al servidor, con el consiguiente desperdicio de recursos.
  #5 (permalink)  
Antiguo 15/11/2009, 06:25
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

La verdad que no tengo muy claro a que te refieres , porque según entiendo lo único que hace es cambiar el valor de la variable de sesión $_SESSION['idioma'] según el optión del select escogido por el usuario por lo que no entiendo a que te refieres conque tiene que recargar la página ya que como yo lo entiendo (seguramente por mi falta de experiencia con javascript y Ajax) solo actualiza ese valor de $_SESSION['idioma'].

Lo que no me acaba de quedar nada claro es este cacho de código
if (ajax.readyState==4){
document.location.href = document.location.href;
}

Según entiendo el valor 4 es cuando (según he podido leer en librosweb.es en el libro sobre Ajax) significa: Completo (se han recibido todos los datos de la respuesta del servidor) , pero ¿que hace exactamente al hacer esto¿:
document.location.href = document.location.href;

Voy a seguir leyendo el libro sobre Ajax de esa web que que comentaba haber si me aclaro un poco más.

Un saludo y mil gracias
__________________
Videotutoriales de Drupal
  #6 (permalink)  
Antiguo 15/11/2009, 06:33
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

Ja, ja, justamente hablo de eso que no te ha quedado claro. Esa porción de código significa: una vez recibida la respuesta (readyState==4), hacer esto: document.location.href = document.location.href;
Y hacer eso es refrescar la página -igual que window.location.reload() o usar la tecla f5 del navegador-. Y es por eso que digo, si al final vas a terminar refrescando la página, cuál es el sentido de usar AJAX, que justamente se usa para no tener que hacerlo?
  #7 (permalink)  
Antiguo 15/11/2009, 06:55
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: ¿no funciona correctamente explorer 8 con Ajax?

Cita:
Iniciado por Panino5001 Ver Mensaje
Ja, ja, justamente hablo de eso que no te ha quedado claro. Esa porción de código significa: una vez recibida la respuesta (readyState==4), hacer esto: document.location.href = document.location.href;
Y hacer eso es refrescar la página -igual que window.location.reload() o usar la tecla f5 del navegador-. Y es por eso que digo, si al final vas a terminar refrescando la página, cuál es el sentido de usar AJAX, que justamente se usa para no tener que hacerlo?
Púes si tienes razón, es tan absurdo que por eso no lo había entendido, porque iguala la vieja url a la nueva que en realidad son iguales (salvo lo nuevo de la cache que tu me dijiste). Pero bueno la otra solución que es la que suelo usar ya me había aburrido de ella que es la típica de pinchar en banderita y según variable (todo ello con php) cambiar la sesión; en fin seguiré investigando sobre Ajax haber si puedo mejorar este script.

Mil gracias de nuevo.
__________________
Videotutoriales de Drupal
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 19:05.