Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
JAVASCRIPT STORAGE / CHAPTER 06 / Учене / LESSON 09
Теория. Запазеното може да е повредено: ръчна промяна, стара версия на приложението, прекъснат запис. Има ТРИ различни състояния при зареждане:
1. Няма ключ (getItem е null) — празно хранилище, нормално за първо отваряне. 2. Има ключ и JSON е валиден — данни. 3. Има ключ, но JSON.parse хвърля — ПОВРЕДЕНИ данни.
Състояние 3 НЕ Е същото като празно. Ако го покажеш като празен списък и после запишеш нов запис, ще презапишеш (и ще загубиш) единствената, може би поправима, версия на данните.
Правилният модел: - Покажи ясно състояние "load-error" и НЕ пипай ключа. - Предложи явно действие "Recover" (бутон). Чак на клик: по избор копирай повредения текст в резервен ключ (expenses-backup), после започни с празен списък. - Никога не изтривай мълчаливо като единствен път.
Честа грешка: catch, който записва [] ; зареждане, което връща [] при грешка; бутон Recover, който няма резервно копие.
<ul id="list"></ul><p id="status"></p><button id="recover" type="button" disabled>Recover</button>{
"expenses": "{\"id\":1,"
}Грешка при зареждане ≠ празно. Не презаписвай мълчаливо — първо покажи проблема.
(празно)Натисни Run — HTML се зарежда в sandbox iframe; Stop маха iframe-а (спира и безкраен цикъл).
›