Foros del Web » Programando para Internet » ASP Clásico »

Cargando pagina..... una sola vez????

Estas en el tema de Cargando pagina..... una sola vez???? en el foro de ASP Clásico en Foros del Web. Amigos tengo una pagina index.asp el cual tiene un mensaje de precarga que funciona a las mil maravilla, pero queria saber si cuando mis visitantes ...
  #1 (permalink)  
Antiguo 20/05/2004, 14:15
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Cargando pagina..... una sola vez????

Amigos tengo una pagina index.asp el cual tiene un mensaje de precarga que funciona a las mil maravilla, pero queria saber si cuando mis visitantes esten navegando por los otros niveles al volver al index.asp no se vuela mostrar dicho mensaje, es decir que se carge una sola vez .

Creo que con un IF se puede pero no se armarlo, me podrian hacer una sugerencia???????


Miguel
  #2 (permalink)  
Antiguo 20/05/2004, 17:31
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
muestra el codigo donde muestras el tema de cargando...
  #3 (permalink)  
Antiguo 21/05/2004, 05:38
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Este es el codigo:

<HTML>
<HEAD>
<script language="JavaScript">
ns=document.layers
ie=document.all
function esconde() {
if (ie) precarga.style.visibility="hidden";
if(ns) document.pregarga.visibility="hide";
}
</script>
<style>
#precarga{position:absolute; width:50%; height:50%; top:100; left:200}
</style>

<meta http-equiv="Content-Language" content="es">
<TITLE>layout</TITLE>
<script language=javascript>
<!--
window.status = ('Espere un momento, cargando el sitio...')
//-->
</script>
......
.....
....
</head>
<body onload="esconde();">
<script language="JavaScript">
if(ie || ns) document.write('<div id="precarga" align="center"><font color="#FF0000" size="4"><b>C a r g a n d o....</b><br>Por Favor Espere...!!!</font><img src=Fotos/barra2.gif border=1></div>');
</script>
<%
Response.Flush
%>
</body>

Lo que quiero es que este mensaje se repita una sola vez al entrar a la pagina index.asp, y no cuando navego por toada las otras paginas y regreso atras????

Miguel
__________________
Miguel Padrón :cool:
  #4 (permalink)  
Antiguo 21/05/2004, 07:18
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Te recomiendo que uses una variable de sesión de ASP. Cuando entras en index.asp compruebas si existe. Si no existe la creas, y así, la próxima vez que entres, al estar ya creada, la puedes utilizar para definir el condicional. Es decir, mostrar o no el mensaje de "Cargando..."

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #5 (permalink)  
Antiguo 21/05/2004, 09:10
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Amigo hice algo asi:

<%SW=Session.SessionID%>
<%response.write SW%>
<%if SW<>"" then%>
<script language="JavaScript">
ns=document.layers
ie=document.all
function esconde() {
if (ie) precarga.style.visibility="hidden";
if(ns) document.pregarga.visibility="hide";
}
</script>
<style>
#precarga{position:absolute; width:50%; height:50%; top:100; left:200}
</style>

<meta http-equiv="Content-Language" content="es">
<TITLE>layout</TITLE>
<script language=javascript>
<!--
window.status = ('Espere un momento, cargando el sitio...')
//-->
</script>
<%
else
end if
................
%>

Pero no me funciona, sera que me puede dar una mano

Miguel
__________________
Miguel Padrón :cool:
  #6 (permalink)  
Antiguo 24/05/2004, 03:55
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Código:
<%SW=Session.SessionID%>
<%response.write SW%>
<%if SW<>"" then%>
<script language="JavaScript">
Perdona por la tadanza en escribir. Vamos a ver:

Si lo primero que haces es crear la variable de sesión antes de comprobar si realmente ya existía, obviamente, el condicional siempre funcionará igual. Primero has de escribir el condicional para ver si existe, y en caso negativo la creas.

Luego has puesto lo siguiente en el condicional:

"Si SW es distinta de (vacío), entonces...", es decir, "si la variable existe, entonces...". Supongo que debería ser al revés: "si la variable es igual a (vacío), entonces..."

<%IF SW="" THEN%>
<script>
......

Por último, y probablemente más importante, es cómo has definido la variable de sesión. Te pongo todo el código (no probado):

Código:
<%
'Comprueba que la variable no existe o está vacía
IF Session("PrimeraVez") = "" THEN
'Le da un valor a la variable, de modo que ya no esté vacía
Session("PrimeraVez") = 1
%>
<script language="JavaScript"> 
ns=document.layers 
ie=document.all 
function esconde() { 
if (ie) precarga.style.visibility="hidden"; 
if(ns) document.pregarga.visibility="hide"; 
} 
</script> 
<style> 
#precarga{position:absolute; width:50%; height:50%; top:100; left:200} 
</style>

<meta http-equiv="Content-Language" content="es">
<TITLE>layout</TITLE>
<script language=javascript>
<!--
window.status = ('Espere un momento, cargando el sitio...')
//-->
</script>
<%
ELSE
.................
END IF
................
%>
Espero que funcione. Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #7 (permalink)  
Antiguo 24/05/2004, 06:10
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Hola amigo probe tu codigo y creo que funciona, pero me sale un pequeño de error me dice que en la linea 47 no esta definido el "ie", esa linea esta en un codigo de javasecript.
Creo que se debe al que el:
<%
ELSE
.................
END IF
................
%>
No esta en la posicion correcta, m epuede explicar que debeo poner en los puntos que colocaste entre else y end if?????


Miguel
__________________
Miguel Padrón :cool:
  #8 (permalink)  
Antiguo 24/05/2004, 07:10
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Ehhh.... sí. Me suponía que te iba a pasar esto, tenía que haberte avisado. Lo siento.

Bien, vamos a ver.

Los puntos que pongo es por si tú querías incluir alguna acción en el caso de que la variable exista de antemano, es decir, que es la segunda vez que entras en la página. Como supongo que no quieres realizar ninguna acción concreta, símplemente has de quitar ELSE y los puntos y cerrar el condicional: <%END IF%>.

Ahora bien, cuando entras por segunda vez ya no carga el código Javascript de la cabecera ¿no? Pues por eso te da un error, ya que después de la etiqueta BODY abres un SCRIPT y pides la variable "ie". Como no habías cargado el SCRIPT previo, esta variable no existe. Si pruebas con el navagador Netscape verás como en ese caso es la variable "ns" la que da el error.

Entonces, se trata de escribir el condicional de modo que lo que no se muestre es el SCIRPT que crea la etiqueta "precarga".

Vamos allá (lo he rehecho todo un poco).

Código:
<HTML>
<HEAD>
<TITLE>layout</TITLE>
<%
'Comprueba que la variable no existe o está vacía
IF Session("PrimeraVez") = "" THEN
'Le da un valor a la variable, de modo que ya no esté vacía
Session("PrimeraVez") = 1
%>
<STYLE> 
#precarga{position:absolute; width:50%; height:50%; top:100; left:200} 
</STYLE>
<SCRIPT Language="JavaScript"> 
ns=document.layers 
ie=document.all 

function esconde() { 
  if (ie) precarga.style.visibility="hidden"; 
  if(ns) document.pregarga.visibility="hide"; 
}

if(ie || ns) document.write('<div id="precarga" align="center"><font color="#FF0000" size="4"><b>C a r g a n d o....</b><br>Por Favor Espere...!!!</font><img src=Fotos/barra2.gif border=1></div>');  
</SCRIPT>
</HEAD>
<BODY onLoad="esconde()">

<%ELSE%>

</HEAD>
<BODY>

<%
END IF
Response.Flush
%>

Resto de la página.................
.................
A ver ahora qué tal.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 24/05/2004 a las 07:13
  #9 (permalink)  
Antiguo 24/05/2004, 07:31
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Amigo no tienes algun error en esta parte:

if(ie || ns) document.write('<div id="precarga" align="center"><font color="#FF0000" size="4"><b>C a r g a n d o....</b><br>Por Favor Espere...!!!</font><img src=Fotos/barra2.gif border=1></div>');
</SCRIPT>
</HEAD>
<BODY onLoad="esconde()">

<%ELSE%>

</HEAD>
<BODY>

<%
END IF
Response.Flush
%>

Resto de la página.................
.................

Estoy tratanado de arreglarlo y nada, es mas aqui te dejot todo lo que estoya haciendo:


<HTML>
<HEAD>
<%
if Session("PrimeraVez")= "" then
Session("PrimeraVez")= 1
%>

<script language="JavaScript">
ns=document.layers
ie=document.all
function esconde() {
if (ie) precarga.style.visibility="hidden";
if(ns) document.pregarga.visibility="hide";
}
</script>
<style>
#precarga{position:absolute; width:50%; height:50%; top:100; left:200}
</style>

<meta http-equiv="Content-Language" content="es">
<TITLE>layout</TITLE>
<script language=javascript>
<!--
window.status = ('Espere un momento, cargando el sitio...')
//-->
</script>
<%else%>
<%end if%>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">

<!-- ImageReady Preload Script (layout.psd) -->
<SCRIPT TYPE="text/javascript">
<!--

function newImage(arg) {
if (document.images) {
rslt = new Image();
rslt.src = arg;
return rslt;
}
}

function changeImages() {
if (document.images && (preloadFlag == true)) {
for (var i=0; i<changeImages.arguments.length; i+=2) {
document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
}
}
}

var preloadFlag = false;
function preloadImages() {
if (document.images) {
Button1_over = newImage("images/Button1-over.gif");
Button2_Button1_over = newImage("images/Button2-Button1_over.gif");
Button2_over = newImage("images/Button2-over.gif");
Button3_Button2_over = newImage("images/Button3-Button2_over.gif");
Button3_over = newImage("images/Button3-over.gif");
layout_17_Button3_over = newImage("images/layout_17-Button3_over.gif");
preloadFlag = true;
}
}

// -->
</SCRIPT>

<!-- End Preload Script -->
<link href="style.css" rel="stylesheet" type="text/css">
</HEAD>


<body onload="esconde();">
<script language="JavaScript">
if(ie || ns) document.write('<div id="precarga" align="center"><font color="#FF0000" size="4"><b>C a r g a n d o....</b><br>Por Favor Espere...!!!</font><img src=Fotos/barra2.gif border=1></div>');
</script>
<%
Response.Flush
%>
.................................................. ..
...........................................

Miguel

Miguel
__________________
Miguel Padrón :cool:

Última edición por 8461277; 24/05/2004 a las 07:37
  #10 (permalink)  
Antiguo 24/05/2004, 08:05
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Pues no sé si tendré un error, yo símplemente me he limitado a copiar la línea tuya.

No obstante te repito que en este código:
Código:
<body onload="esconde();">
<script language="JavaScript"> 
if(ie || ns) document.write('<div id="precarga..................
</script>
Lo que está remarcado en negrita es lo que probablemente te devuelva el error, ya que ie no está definido porque no lo definiste al utilizar el condicional la segunda vez.

Prueba el código que te di antes tal cual y dime si te da algún problema.

suerte.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #11 (permalink)  
Antiguo 24/05/2004, 08:14
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Amigo lo te trataba de decir es los head, veo que antes del body hay un cierre de head y despuesdel body ahay otro:

</HEAD>
<BODY onLoad="esconde()">

<%ELSE%>

</HEAD>
<BODY>

El segundo body es body de cierre????

Ya prtobe la sugerencia tuya y me sigue dando el error "ie" pero en la linea

Miguel
__________________
Miguel Padrón :cool:
  #12 (permalink)  
Antiguo 24/05/2004, 08:49
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
No, no. Verás que entre las dos etiquetas de <BODY> hay una de ASP

Código:
</HEAD>
<BODY onLoad="esconde()">

<%ELSE%> 

</HEAD>
<BODY>
Esa etiqueta forma parte del condicional e indica lo que ha de hacerse en el caso de que no se cumplan las condiciones defindias, es decir, que la variable de sesión ya existe. La variable ya existe, entonces es la segunda vez que se entra en la página y, por tanto, ya no se muestra la capa de precarga. Si no se muestra la capa ¿para qué necesitas esconderla con la función esconde()? Entonces, ya no se necesita la llamada a esa función. Así que la suprimimos la segunda vez.

Código:
</HEAD>
<BODY onLoad="esconde()">

<%ELSE%>

</HEAD>
<BODY> 
Si compruebas el código fuente que te devuleve la página ASP, por ejemplo con el Explorardor, verás que sólo hay una etiqueta </HEAD> y una <BODY>.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 24/05/2004 a las 08:51
  #13 (permalink)  
Antiguo 24/05/2004, 09:06
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 22 años, 5 meses
Puntos: 1
Ok ya entendi y funciona perfectamente, gracias a hora lo cuelgo en el servidor???

Espero contar con usted para otra oportunidad

Miguel
__________________
Miguel Padrón :cool:
  #14 (permalink)  
Antiguo 24/05/2004, 09:23
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Uf, menos mal. Me estaba empezando a . Je je.

Me alegro de que te funcione.

Un saludo de un tocayo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 17:10.