O segmento localStorage é seguro?
Estou curioso sobre a possibilidade de danificarlocalStorage
substituindo-o em duas guias do navegador simultaneamente. Devo criar um mutex para armazenamento local?
Eu já estava pensando em uma pseudo classe:
LocalStorageMan.prototype.v = LocalStorageMan.prototype.value = function(name, val) {
//Set inner value
this.data[name] = val;
//Delay any changes if the local storage is being changed
if(localStorage[this.name+"__mutex"]==1) {
setTimeout(function() {this.v(name, val);}, 1);
return null; //Very good point @Lightness Races in Orbit
}
//Lock the mutext to prevent overwriting
localStorage[this.name+"__mutex"] = 1;
//Save serialized data
localStorage[this.name] = this.serializeData;
//Allow usage from another tabs
localStorage[this.name+"__mutex"] = 0;
}
A função acima implica um gerenciador de armazenamento local que está gerenciando uma chave específica do armazenamento local -localStorage["test"]
por exemplo. Eu quero usar isso para scripts de usuários greasomonkey onde evitar conflitos é uma prioridade.