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

Contador de tiempo para atrás

Estas en el tema de Contador de tiempo para atrás en el foro de ASP Clásico en Foros del Web. Hola, necesitaría alguna idea para realiza una cuenta atras en VbScript, estoy intentando realizar un curso de 3 preguntas que esté limitado por tiempo pero ...
  #1 (permalink)  
Antiguo 07/06/2005, 06:43
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Contador de tiempo para atrás

Hola, necesitaría alguna idea para realiza una cuenta atras en VbScript, estoy intentando realizar un curso de 3 preguntas que esté limitado por tiempo pero no cada página sino las 3 páginas en total.

No se si me explico, es decir, cada vez que un usuario comience el curso empezará a contar el tiempo (3 minutos) del curso pero cuando pase a la siguiente pregunta (que es otra página) debería mantener el tiempo que le quede (2:15) y continuar la cuenta atrás con ese tiempo. Si alguien me puede ayudar con alguna idea.

Gracias de antemano.

Un saludo
  #2 (permalink)  
Antiguo 07/06/2005, 07:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Independientemente de si guardas el tiempo en variables de sesión para que puedas llevarlo entre páginas, necesitas mostrarle el tiempo restante al usuario. Eso debes hacerlo con un lenguaje de cliente. Coloca ->cuenta regresiva javascript<- en google y toma alguno de los cientos de resultados, lo modificas para que reciba la hora inicial (el contenido de tus variables de sesión) y listo, en cada submit de cada página actualizas el resultado de estas variables javascript en variables de sesión y se las pasas de parametro inicial al script de cuanta regresiva.
Ahora, en el caso de que solo puedan capturar el cuestiuonario en un solo sentido, ni siquiera necesitarias las variables de sesión, supongo que con simples parámetros funcionaría.

Saludos
  #3 (permalink)  
Antiguo 07/06/2005, 08:15
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Si, si eso lo tengo:

<script>
<!--
var limit="1:01"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}

function tiempo(){
var mensaje
mensaje = "Atención para responder a la siguiente pregunta \n"
mensaje += "\n dispone de 1 minuto de tiempo"
alert(mensaje)
}

function begintimer(){
if (!document.images)
return
if (parselimit==1)
window.location="index.asp"
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+" m. "+cursec+" s."
else
curtime=cursec+" segundos"
window.status="Atención dispone de "+curtime+" para responder la pregunta"
window.document.formulario.reloj.value=curtime
setTimeout("begintimer()",1000)
}
}

//-->
</script>


Y en el var limit le paso los parametros de session de minutos y segundos, pero suponte ahora que no son 3 páginas, que son 1000 como voy a estar pasando parametros de una página a otra???. No hay una forma menos lavoriosa?

Tiene que haberla, estaba pensando en declararme las variables de session en el servidor, parecido al global.asa, para que cuando empiece un curso inicie el tiempo y se mantenga ahi hasta que responda todas las preguntas o el tiempo se acabe.
  #4 (permalink)  
Antiguo 07/06/2005, 08:46
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, suguro no existirá un examen de 1000 hojas, jeje, pero independientemente de eso la idea es que en cada página inicialices el script con las variables de sesión, las cuales no debes inicializar el en global.asa sino cuando se autentificó el alumno, es decir, en la primer página después del login/password supongo que tienes algún botón de "iniciar examen" que arranque el contador.

Ahora, si me ayudas un poco en clarificar tu pregunta, te lo agradecería, por que no entiendo cuál es la duda exacta si es que ya tienes lo del script y comprendido lo del las variables de sesión que inicien dicho script.

Saludos
  #5 (permalink)  
Antiguo 07/06/2005, 09:45
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
La duda que tengo es esa, que ahora son 3 preguntas pero dentro de 3 semanas serán muchas más. Entonces me parecía un poco complicado ir pasando todo el rato las variables de session de una página a otra. Yo estoy en la pregunta 4 y dispongo de 1:30 de tiempo, pero al pasar a la pregunta 5, el tiempo empezará a contar a partir de donde lo dejé en la pregunta 4, es decir empezará en 1:15 y así por cada una de las preguntas que haya.

Por eso decía que debe de haber una forma de ejecutar esa session y ese contador de tiempo en el lado del servidor, es decir, cuando un cliente visita la página de inicio del curso se inicia el tiempo en el servidor y cuando se acaba el tiempo le avisa, sin necesidad de estar pasando parámetros de una página a otra.

El problema es que ahora son 3 páginas, pero que el día de mañana pueden ser 50 y es un poco coñazo estar pasando parametros de una a una.

Gracias por tu ayuda.
  #6 (permalink)  
Antiguo 07/06/2005, 10:51
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
aaahh, ya te entendí que es lo que pretendias explicar. Claro que la hora la tomaras inicialmente del servidor y es correcto que el conteo del pretendas llevar en el servidor. Pero veamos algunas cuestiones:

Y no hay forma de no pasar la hora que tengas en las variables de sesión al script por la sencilla razón de que necesariamente necesita el cliente (el browser) saber cuanto tiempo queda, es decir tienes que inicializar las variables del script con la hora que se tenga registrada en el servidor. Y esto es a fuerzas, por que si el cliente no lo sabe, le permitirá continuar trabajando o mandar el examen fuera de tiempo.

Ahora, por lo que es coñazo el ir pasando parámetros a las N páginas, pues tampoco, ya que todas tendrán el mismo script y todas se inicializaran con las mismas variables, esto indica que puedes generar UN include con las rutinas necesarias y colocar ese include en cada página.

Pero, debes considerar que como solo se trabajará con el tiempo del servidor, el cual no considerará el tiempo que el alumno se tarde entre página y página y/o en cargar imágenes, etc; por lo cual podría ser que realmente tengo menos tiempo efectivo para contestar el examen.

Tambien debes considerar, que las llamadas cliente-servidor en ASP son SIN estado, esto es que una vez que se procesa una petición el servidor se olvida de ella, por lo que tendras que actualizar el contenido de las variables de sesión con la hora del servidor en cada petición.

No se si esto te ha quedado un poco más claro.
  #7 (permalink)  
Antiguo 07/06/2005, 16:55
 
Fecha de Ingreso: junio-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Si al final ha sido la mejor solución, pasar parametros de página a página y cogerlos a través de un include que siempre es el mismo, lo único que hago es pasarle el tiempo que lleva y en la siguiente página recojo los parámetros y empieza a contar desde ellos.

Gracias por tu ayuda.
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 13:03.