localStorage 单个域通常只有几 MB,写满后写入直接抛异常。
写入必须包 try/catch,捕获后降级到内存或 IndexedDB,别让页面白屏。
清理时按前缀挑自己业务的 key 删,别 clear 整域,会连带别的模块。
try {
localStorage.setItem('form-draft', JSON.stringify(data));
} catch (e) {
// 配额满或隐私模式下写入会抛 QuotaExceededError
if (e.name === 'QuotaExceededError') memoryStore.set(key, data);
}
// 只清自己前缀的键
Object.keys(localStorage)
.filter(k => k.startsWith('form-'))
.forEach(k => localStorage.removeItem(k));
THE END






暂无评论内容