I would say that if the values are as simple as that, document.cookie
would already solve, but you can still do this as localStorage
, what you can do is create a vector in json format (maybe) date limit.
And at the beginning of the page, first of all (and ofload onload) add something like:
function localStorageExpires()
{
var
toRemove = [], //Itens para serem removidos
currentDate = new Date().getTime(); //Data atual em milissegundos
for (var i = 0, j = localStorage.length; i < j; i++) {
var current = localStorage.getItem(localStorage.key(i));
//Verifica se o formato do item para evitar conflitar com outras aplicações
if (current && /^\{(.*?)\}$/.test(current)) {
//Decodifica de volta para JSON
current = JSON.parse(current);
//Checa a chave expires do item especifico se for mais antigo que a data atual ele salva no array
if (current.expires && current.expires <= currentDate) {
toRemove.push(key);
}
}
}
// Remove itens que já passaram do tempo
// Se remover no primeiro loop isto poderia afetar a ordem,
// pois quando se remove um item geralmente o objeto ou array são reordenados
for (var i = toRemove.length - 1; i >= 0; i--) {
localStorage.removeItem(toRemove[i]);
}
};
localStorageExpires();//Auto executa a limpeza
To declare and get the items:
//Declare isto
function setLocalStorage(chave, valor, minutos)
{
var expirarem = (new Date().getTime()) + (60000 * minutos);
localStorage.setItem(chave, JSON.stringify({
"value": valor,
"expires": expirarem
});
}
function getLocalStorage(chave)
{
localStorageExpires();//Limpa itens
var itemValue = localStorage[chave];
if (itemValue && /^\{(.*?)\}$/.test(itemValue)) {
//Decodifica de volta para JSON
var current = JSON.parse(itemValue);
return current.value;
}
return false;
}
To use call like this:
//login é tua chave, true é teu valor e 25 são os minutos de vida
setLocalStorage('login', true, 25);
To get use:
var login = getLocalStorage('login');
alert(login);