Безопасен ли поток localStorage?
Мне любопытно о возможности поврежденияlocalStorage
запись, переписав его в двух вкладках браузера одновременно. Должен ли я создать мьютекс для локального хранилища?
Я уже думал о таком псевдоклассе:
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;
}
Приведенная выше функция подразумевает наличие менеджера локального хранилища, который управляет одним конкретным ключом локального хранилища:localStorage["test"]
например. Я хочу использовать это для скриптов пользователя greasomonkey, где предотвращение конфликтов является приоритетом.