Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 10 de Diciembre 2015, 22:52

Título: Cuenta atrás en segundos JavaScript. window.location redirecionar web CU01171E#
Publicado por: pedro,, en 10 de Diciembre 2015, 22:52
Hola, otra solución por aquí. Ejercicio CU01171E del tutorial gratuito de programación JavaScript pdf de aprenderaprogramar.

Citar
EJERCICIO
Crea una página web que al ser invocada muestre un mensaje “Hemos cambiado de ubicación esta página. En breves momentos será redireccionado…” junto a una cuenta atrás que muestre 5, 4, 3, 2, 1 (correspondiente a 5 segundos). Tras transcurrir 5 segundos y mostrarse la cuenta atrás, el usuario debe ser redireccionada a la url http://aprenderaprogramar.com. Para realizar este ejercicio debes usar la propiedad window.location junto con funciones que permitan el retardo en la ejecución vistas en entregas anteriores del curso.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
window.onload = function() {
setTimeout(cuentaAtras, 1000);
}
var contador = 5;
function cuentaAtras() {
document.getElementById('datos').innerHTML = 'Hemos cambiado de ubicación esta página. En breve será redireccionado... ' + contador;
document.getElementById('datos').style.fontSize = '66px';
if (contador==0) {
window.location.assign('http://aprenderaprogramar.com');
} else {
contador--;
setTimeout(cuentaAtras, 1000);
}
}
</script>
</head>
<body>
<div id="datos"></div>
</body>
</html>

Saludos.
Título: Re:Mostrar una cuenta atrás JavaScript. window.location redirecionar web CU01171E
Publicado por: Mario R. Rancel en 15 de Diciembre 2015, 09:43
Buenos días Pedro

Veo el código correcto. Como detalle que se puede mejorar, al cargar la página, el mensaje tarda 1 segundo en mostrarse debido a que cuando la página carga le estableces un setTimeout inicial con window.onload = function() { setTimeout(cuentaAtras, 1000); }

Para evitar esa demora en la carga veo preferible escribir window.onload = function() { cuentaAtras(); } quedando el retardo sólo para realizar la cuenta atrás, no para cargar el mensaje inicial.

Saludos
Título: Re:Mostrar una cuenta atrás JavaScript. window.location redirecionar web CU01171E
Publicado por: pedro,, en 15 de Diciembre 2015, 22:21
Hola Mario, tienes razón, no había ninguna necesidad de retrasar el inicio de cuentaAtras().

Gracias por la apreciación, corregido queda.