Dùng event window.onunload (hoặc beforeunload) để clear localStorage khi tab/window đóng.
Ví dụ
window.onunload = () => {
window.MyStorage.clear(); // MyStorage là wrapper localStorage
};
Lưu ý quan trọng
unload**không reliable** trên mobile (iOS Safari kill tab không fire unload).beforeunloadcũng không đảm bảo chạy xong async operation.- localStorage **persistent** — không tự xóa khi đóng tab (khác sessionStorage).
Giải pháp tốt hơn
- Dùng **sessionStorage** thay localStorage — tự xóa khi tab đóng (session end).
- Nếu bắt buộc localStorage: accept data tồn tại, hoặc dùng
beforeunloadsync clear (không async). - Service Worker + IndexedDB cho offline-first, kontrol tốt hơn lifecycle.