Si quieres hacer esto creo que básicamente tienen que hacerlo de forma manual. Por ejemplo, puede almacenar la marca de tiempo en una ranura de almacenamiento local junto con cada valor que está almacenando, y luego verifique la marca de tiempo con la hora actual en un intervalo regular como carga de página o setTimeout o algo así.
Ejemplo:
//this function sets the value, and marks the timestamp
function setNewVal(prop)
{
window.localStorage[prop] = Math.random();
window.localStorage[prop+"timestamp"] = new Date();
}
//this function checks to see which ones need refreshing
function someRucurringFunction()
{
//check each property in localStorage
for (var prop in window.localStorage)
{ //if the property name contains the string "timestamp"
if (prop.indexOf("timestamp") != -1)
{ //get date objects
var timestamp = new Date(window.localStorage[prop]);
var currentTime = new Date();
//currently set to 30 days, 12 hours, 1 min, 1s (don't set to 0!)
var maxAge = (1000 * 1) *//s
(60 * 1) *//m
(60 * 12) *//h
(24 * 30); //d
if ((currentTime - timestamp) > maxAge)
{//if the property is too old (yes, this really does work!)
//get the string of the real property (this prop - "timestamp")
var propString = prop.replace("timestamp","");
//send it to some function that sets a new value
setNewVal(propString);
}
}
}
}
//set the loop
window.setInterval(someRucurringFunction,(1000*60*60);
EDIT: el método de mrtsherman sería totalmente funcionar tan bien. Del mismo modo, podría ingresar la marca de tiempo como propiedad de un objeto que podría estar almacenando/recuperando con JSON.stringify/parse(). Si la matriz o el objeto son muy grandes, o si tiene muchos de ellos, probablemente sugeriría utilizar el método de propiedad paralelo para la eficiencia.
me gusta esta solución, sin embargo, creo que debería tenerse en cuenta para este ejemplo en particular que los valores [1] tiene que ser analizado en un objeto Date antes de su comparación. Como esta nueva Fecha (valores [1]) – labago