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

la llamada AJAX se cae!!! a ver quien sabe...

Estas en el tema de la llamada AJAX se cae!!! a ver quien sabe... en el foro de Frameworks JS en Foros del Web. Hola muchachos... tengo un <div> vacío con ciertas especificaciones css... ejemplo <div id="el_div" style="width:300px; height:600px; border:1px solid #CCCCCC"></div> cuando entro a la pagina donde esta ...
  #1 (permalink)  
Antiguo 24/12/2010, 19:10
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
Información la llamada AJAX se cae!!! a ver quien sabe...

Hola muchachos...

tengo un <div> vacío con ciertas especificaciones css...

ejemplo

<div id="el_div" style="width:300px; height:600px; border:1px solid #CCCCCC"></div>

cuando entro a la pagina donde esta este div obviamente me aparece un cuadro de 300 x 600 vacio..

luego realizo una llamada con AJAX hacia una pagina "pagina_uno.html", y la respuesta de la llamanda (la cual recibo en html con responseText) la inserto en ese div de 300 x 600 con:

document.getElementById("el_div").innerHTML = objAJAX.responseText;

hasta alli todo va bien, de maravilla....

el caso es que estando ya ese div lleno con la informacion traida desde la pagina "pagina_uno.html", si por "X" o por "Y" razon el usuario presiona la tecla F5 o sencillamente le da click al reload del navegador la pagina vuelve a cargarse normalmente PERO EL DIV QUE YA ESTABA LLENO CON LA INFORMACION VUELVE A SU ESTADO INICIAL COMO CUANDO SE ENTRO A LA PAGINA, es decir, vuelve a aparecer el cuadro vacio y debere realizar nuevamente la llamada AJAX para llenarlo...

EL RETO ES EL SIGUIENTE..

como hariamos para que una vez que se haya llenado el div con la informacion traida con AJAX desde otra pagina, este se mantenga lleno con esa informacion sin importar que se recargue la pagina al pulsar F5 o clickear en el RELOAD del navegador????????

NOTA: bloquear la telca F5 y el RELOAD del navegador no es una opcion!!!
tampoco podemos cargar automaticamente la informacion en el div apenas se cargue la pagina.. el div se debe visualizar vacio al entrar a la pagina..

SALUDOS..
  #2 (permalink)  
Antiguo 26/12/2010, 03:15
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 6 meses
Puntos: 45
Respuesta: la llamada AJAX se cae!!! a ver quien sabe...

Pero es que ajax lo que hace es rellenar temporalmente el div con la respuesta de la petición, cuando cargas la página se carga el contenido original, esto es, el div vacío. Eso es imposible resolverlo, al menos que quieras que el div siempre se muestre cargar el sitio, simplemente añade la función javascript al evento onload de body, o también puedes almacenar alguna variable en un array superglobal (como session)...

Lo único que se me ocurre ahora es lo siguiente:

Haz una petición automática mediante ajax al archivo php para comprobar si la variable existe o no, en caso afirmativo haz que se ejecute la segunda petición para rellenar el div... La variable que tendrá que comprobarse se creará la primera vez que se pida la información.
  #3 (permalink)  
Antiguo 26/12/2010, 09:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: la llamada AJAX se cae!!! a ver quien sabe...

hola Rolldi gracias por tu respuesta ;D

pero..
"tampoco podemos cargar automaticamente la informacion en el div apenas se cargue la pagina.. el div se debe visualizar vacio al entrar a la pagina.. es decir, no se permite colocar la funcion en el evento onload del body!!
"


lo que me dices de la variable superglobal me parece interesante.. solo que asi tendría que controlar cada click que realice una llamada AJAX... porque el div no solo visualiza una pagina sino que:
*si el usuario presiona el botón de fotos, en el div se cargan las fotos con una llamada AJAX a otra página,
*y si presiona el de videos, en el div se cargan los videos,
*lo mismo para la información de perfil

pero si sale de esta parte de la web y se adentra en las "actividades e información", habrán otros div que carguen la respuesta AJAX, y mas allá, si entra en "las actividades más recientes de mis contactos" un div cargaría esta información.
En otras palabras tendría que seguir el clickeo del usuario por toda la web para saber cual fue la última llamada que realizó :(

aún así gracias por tu respuesta, saludos
  #4 (permalink)  
Antiguo 27/12/2010, 06:15
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: la llamada AJAX se cae!!! a ver quien sabe...

Utiliza una variable de sesion, y en caso de que este definida carga automáticamente el DIV con la informacion. Si no esta definida pues DIV estará vacío. Si da a F5 o recarga la página la variable de sesion no se borra, salvo que cierre la página.

session_start ();
$_SESSION["ultimoclick"] ="videos"; en caso de que diera a videos;
$_SESSION["ultimoclick"] ="fotos"; en caso de que diera a fotos;

Las variables las creas en cada pagina que llamas cuando haces el ajax.

if (!isset($_SESSION["ultimoclick"] )){

echo "No ha clicleado a nada";

}

echo $_SESSION["ultimoclick"];


Espero que te sirva la idea.

saludos

Última edición por yop289; 27/12/2010 a las 06:21
  #5 (permalink)  
Antiguo 27/12/2010, 11:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: la llamada AJAX se cae!!! a ver quien sabe...

holaa yop289.. muchas gracias por tu aportee es beneficioso...

estuve investigando y encontre otra forma sin sesiones ni variables superglobales, lo cual a mi criterio es mucho mejor...

utilizando lo que se conoce como hash tags, gmail hace lo mismo cuando se recarga la pagina luego de realizar cierta llamada AJAX, facebook tambien lo implementa..
se trata de agregar a la url un dato o frase especifica que diferencie la accion que se ha realizado en la web..

ejemplo

location.hash = 'video?14367YQff';

esto hace que en la url luego de toda la ruta de la pagina, aparezca algo asi:

www.ruta_pagina.com/#video?1436YQff

noten, que no es que estamos pasando los datos por un metodo GET y por eso se vizualizan en la url, no. Si no q cambiamos intencionalmente la url y luego jugamos con esos datos..

SALUDOS y gracias
  #6 (permalink)  
Antiguo 28/12/2010, 05:48
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: la llamada AJAX se cae!!! a ver quien sabe...

No se me habría ocurrido nunca ya que para mi toda la vida en una url si se ponía # era para acceder a una parte de la página a la que habíamos definido una ancla, buena solución ya que al final es como pasar una variable ya que parse_url te permite saber cual es y cargar el código que quieras, ya nos contarás como te ha ido.
Código:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

?>
Nos devuelve:
Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
Saludos

Etiquetas: ajax, cae, llamada, ver
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 00:21.