An initial reading that is interesting:
Differences between localStorage Vs sessionStorage?
If you want to persist the value between page sessions, you should use localStorage
. From what I read, these values do not have, by default, how to set life time, so for your case, as the value in the record is not important, you can store the value of the timestamp and always check the amount of time that has passed from its creation to the current one in a new session. This check looks something like this:
// Verifica se existe o registro local:
if (localStorage.getItem("visualizado")) {
// Recupera o timestamp atual:
let now = Date.now();
// Calcula a diferença entre o atual e o registro:
let diff = now - localStorage.getItem("visualizado");
// Define o tempo (ms) que durará o registro:
let delay = 1*60*1000;
// Se a diferença for maior que o tempo de duração:
if (diff >= delay) {
// Remove o registro:
localStorage.removeItem("visualizado");
} else {
// Senão, exibe o tempo de vida restante (opcional):
console.log("Você já visualizou a imagem no último minuto. Volte em " + (delay - diff)/1000 + "s.");
}
}
The logic to display the image is basically the same, only changing the value persisted in the record:
// Se não existir o registro:
if (!localStorage.getItem("visualizado")) {
// Exibe a imagem:
console.log("Imagem foi exibida.");
// Armazena o timestamp atual no registro:
localStorage.setItem("visualizado", Date.now());
}
See working on Jsbin, for a time of 1 minute.