2015-01-06 13 views
5

Diciamo che faccio una chiamata a memoria locale in questo modo:Cosa succede se una scrittura su localStorage viene cancellata?

window.localStorage.setItem("key", bigJsonObject); 

E subito dopo, l'utente chiude il browser Web. Quale sarà il risultato di

window.localStorage.getItem("key") 

Intende la bigJsonObject essere parzialmente scritto? Oppure l'intera scrittura fallirà? È il loro modo di garantire che non ci saranno scritture parziali?

+0

@LightnessRacesinOrbit - nessun problema – adeneo

risposta

5

Fare riferimento alla §4.1 of the "web storage" specification:

I setItem() e removeItem() metodi devono essere atomico rispetto al fallimento. In caso di errore, il metodo non fa nulla. In altre parole, le modifiche all'area di archiviazione dei dati devono avere esito positivo oppure l'area di archiviazione dei dati non deve essere affatto modificata.

Tuttavia, ci sono (storicamente) bug del browser in questo senso, e.g. some time before Chrome 21 until some time before Chrome 29.

Problemi correlati