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

Dudas Simples

Estas en el tema de Dudas Simples en el foro de Frameworks JS en Foros del Web. Hola en una pagina web que estoy realizando utilizo AJAX para cargar DIVs en el DIV que denomino DIVPRINCIPAL que es el div que va ...
  #1 (permalink)  
Antiguo 22/07/2009, 22:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 1
Dudas Simples

Hola en una pagina web que estoy realizando utilizo AJAX para cargar DIVs en el DIV que denomino DIVPRINCIPAL que es el div que va cambiando cuando hacen click en alguna opcion del menu, asi nada mas recargo ese div (DIVPRINCIPAL) con la info que quiero mostrar y los demas DIVs que contienen el menu, la cabecera y el pie de pagina no los recargo.

Bueno de ahi me surgen dos situaciones que deseari arreglar:

1- Cuando la persona refresca la pagina, por ejemplo aprentando F5 no recuenda el Div que estar cargado en el DIVPRINCIPAL y me muestra el que por defecto muestra el DIVPRINCIPAL.

2-Cuando se seleccion alguna opcion del menu... no me aprece la direccion completa en la barra de navegacion.
yo quisiera que cuando con mi funcion ajax llamo a Staff.html
me aparezca en la barra de navegacion w.mipagina.com/Staff.html
y en realiadad me aparece w.mipagina.com.

Bueno aca les dejo la funcion con la que cargo el DIVPrincial:

Código:
// Documento JavaScript
// Esta función cargará las paginas
function cargaDiv(url, id_contenedor){
var pagina_requerida = false;
	if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
		pagina_requerida = new XMLHttpRequest();
	}else if (window.ActiveXObject){ // pero si es IE
		try {
			pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){ // en caso que sea una versión antigua
			try{
			pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else
		return false
		pagina_requerida.onreadystatechange=function(){ // función de respuesta
		cargarpagina(pagina_requerida, id_contenedor)
	}
	pagina_requerida.open('GET', url, true); // asignamos los métodos open y send
	pagina_requerida.send(null);
	
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
	if (pagina_requerida.readyState == 4 && 
		(pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
			document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText;
}
  #2 (permalink)  
Antiguo 23/07/2009, 05:11
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Dudas Simples

Hola

Con respecto a tu segunda pregunta, has de tener en cuenta que www.mipagina.com y www.mipagina.com/staff.html, son dos páginas distintas. Y ajax se caracteriza por no tener que recargar toda la página o una nueva página para mostrar el nuevo contenido. En otras palabras no hay nada que hacer.

Tu primera cuestión, el término refrescar es sinónimo de recargar. Entonces lo que está ocurriendo es que se vuelve a cargar todo el contenido inicial. Una opción sería usar sesiones

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 23/07/2009, 07:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Dudas Simples

Gracias Adler... yo lo habia pensado asi, pero pense que quizas habia algo mas optimo.
Lo que yo habia pensado es retener el div que esta cargado en la variable Session y tener una funcion en el <body onload='llamar mifuncionAjax'> que me recarge cuando alguien refresca o recarga mi pagina.

Bueno lo hare asi. Si alguien sabe de una manera mejor soy todo oidos.

En cuanto staff.html no es toda una pagina es simplemente un div con info que contiene los datos, quizas no me explique bien.

Saludos y gracias de nuevo.
Nico8287.
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:12.