Evitar Reinicio del Tiempo Al Actualizar la Página en Javascript [SOLUCIONADO]

Javascript es uno de los lenguajes de programación más populares en la actualidad. Una característica interesante de JavaScript es que puede controlar muchos aspectos de la interactividad de una página web, incluido el tiempo en la página.

¿Por qué es importante prevenir el reinicio del tiempo?

Uno de los desafíos que enfrentan los desarrolladores web al trabajar con Javascript es cómo mantener el tiempo en la página incluso después de la actualización de la página. Prevenir el reinicio del tiempo puede ser crucial para conservar elementos temporales, como contadores o temporizadores, cruciales para la funcionalidad del sitio.

Solución con Javascript

Un enfoque eficaz para prevenir el reinicio del tiempo en Javascript implica el uso de la API de almacenamiento web proporcionada por los navegadores modernos. Esta API permite a los desarrolladores almacenar datos de manera persistente en el navegador del usuario. Al almacenar el tiempo transcurrido en el almacenamiento web, puede recuperarlo y continuar desde donde se dejó, incluso después de actualizar la página.

    
            window.onload = function() {
                if (sessionStorage.getItem('timeOnPage')) {
                    let seconds = sessionStorage.getItem('timeOnPage');
                    let minutes = Math.floor(seconds / 60);
                    seconds = seconds % 60;
                    // Restaurar el tiempo
                    document.getElementById('timer').innerText = `Time on page: ${minutes}:${seconds}`;
                }
                
                setInterval(function() {
                    let timer = document.getElementById('timer').innerText.split(': ');
                    let minutes = parseInt(timer[1].split(':')[0]);
                    let seconds = parseInt(timer[1].split(':')[1]);
                    seconds++;
                    if (seconds >= 60) {
                        minutes++;
                        seconds = 0;
                    }
                    document.getElementById('timer').innerText = `Time on page: ${minutes}:${seconds}`;
                    // Almacenar el tiempo en sessionStorage
                    sessionStorage.setItem('timeOnPage', minutes * 60 + seconds);
                }, 1000);
            };
        

Explicación del código

En el código anterior, se utiliza la función window.onload para comprobar si ya existe un valor almacenado en sessionStorage para ‘timeOnPage’. Si el valor existe, se recupera el tiempo almacenado, se convierte de nuevo a minutos y segundos y se muestra en la página. Luego, cada segundo, el código incrementa el contador de tiempo, actualiza el tiempo mostrado en la página y guarda el nuevo tiempo total en segundos en sessionStorage. De esta manera, incluso si la página se actualiza, el tiempo anterior se conservará y continuará desde donde se quedó.

Consideraciones adicionales

Es importante tener en cuenta que si el usuario cierra la pestaña o el navegador, los datos almacenados en sessionStorage se borrarán, ya que sessionStorage sólo guarda los datos temporalmente para esa sesión específica. Si desea persistir datos entre diferentes sesiones, puede usar localStorage en lugar de sessionStorage. Sin embargo, debes considerar las implicaciones de privacidad al utilizar el almacenamiento persistente en el navegador del usuario.

Espero que este artículo te haya ayudado a entender cómo evitar que el tiempo se reinicie en Javascript cuando se actualiza la página. Si tienes más preguntas o necesitas aclaraciones adicionales, no dudes en dejar un comentario o ponerse en contacto con nosotros. Estamos aquí para ayudarte a desarrollarte como desarrollador web, para que puedas crear aplicaciones web más ricas y dinámicas.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad