Mendengarkan Peristiwa Penyimpanan
Tanggapi perubahan penyimpanan lintas tab dengan peristiwa storage.
Mendengarkan Peristiwa Penyimpanan adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.
Komunikasi Antar-Tab
Penyimpanan Web memicu peristiwa storage pada setiap tab lain dengan asal yang sama setiap kali localStorage berubah. Ini adalah cara paling sederhana untuk menjaga beberapa tab aplikasi yang terbuka tetap sinkron—misalnya, untuk menyebarkan proses keluar atau pergantian tema.
Mendaftarkan Pendengar
Pasang penangan pada window: window.addEventListener("storage", handleStorage). Pendengar hanya dipicu di tab atau jendela lain dengan asal yang sama—tidak pernah di tab yang melakukan perubahan itu sendiri karena tab tersebut sudah mengetahui pembaruannya.
window.addEventListener("storage", (e) => {
console.log("key:", e.key, "new:", e.newValue);
});Properti StorageEvent
Peristiwa tersebut membawa key (kunci yang berubah), oldValue dan newValue (teks atau null), url (halaman yang memicu perubahan), serta storageArea (objek Storage—localStorage atau sessionStorage).
clear() Mengatur Kunci Menjadi null
Saat tab lain memanggil localStorage.clear(), peristiwa penyimpanan dipicu sekali dengan key === null dan oldValue serta newValue yang keduanya bernilai null. Kenali pola ini untuk menangani penghapusan massal secara terpisah dari pembaruan satu kunci.
Perilaku removeItem
Pemanggilan removeItem memicu peristiwa dengan newValue === null dan oldValue yang berisi teks sebelumnya. Bedakan "kunci dihapus" dari "kunci ditetapkan ke teks null" dengan memeriksa bahwa newValue benar-benar null, bukan teks "null".
Batasan pada Tab yang Sama
Peristiwa tersebut tidak pernah dipicu di tab yang menulis perubahan. Untuk merespons penulisan Anda sendiri, kirimkan peristiwa khusus setelah setItem, atau bungkus setItem dalam pembantu yang memanggil API penyimpanan dan bus peristiwa dalam aplikasi.
function setItem(key, val) {
localStorage.setItem(key, val);
window.dispatchEvent(new CustomEvent("local-storage", { detail: { key, val } }));
}Keluar Antar-Tab
Tetapkan kunci seperti auth:logout dengan cap waktu saat pengguna keluar. Tab lain mendengarkan kunci tersebut dalam peristiwa penyimpanan, lalu segera menghapus status sesi mereka sendiri dan mengarahkan pengguna ke halaman masuk tanpa perlu mengeklik lagi.
Sinkronisasi Tema dan Preferensi
Saat pengguna mengganti tema di satu tab, tulis theme ke localStorage. Penangan penyimpanan di setiap tab lain membaca nilai baru tersebut dan menerapkan document.documentElement.dataset.theme—perubahan langsung terlihat di semua tab yang terbuka.
Memfilter berdasarkan Kunci
Satu penangan dapat melayani banyak fitur dengan membuat percabangan berdasarkan e.key. Pernyataan switch menjaga agar pengirim tetap mudah dibaca: setiap kasus menangani satu kunci penyimpanan dan mengabaikan perubahan yang tidak terkait yang ditulis fitur lain ke Storage yang sama.
sessionStorage Tidak Berlaku Antar-Tab
sessionStorage berlaku per tab—penulisannya tidak pernah memicu peristiwa penyimpanan di tab lain karena setiap tab memiliki sessionStorage independen. Gunakan localStorage jika diperlukan pengiriman sinyal antar-tab, meskipun kunci tersebut langsung dihapus setelahnya.
Alternatif BroadcastChannel
Untuk pengiriman pesan antar-tab yang lebih kaya, API BroadcastChannel mengirim data terstruktur tanpa menyentuh penyimpanan: new BroadcastChannel("app").postMessage({ type: "logout" }). Gunakan BroadcastChannel untuk sinyal sementara dan peristiwa penyimpanan untuk status yang juga perlu tetap tersimpan.
Uji Pengetahuan
Jika Tab A memanggil localStorage.setItem("theme", "dark"), tab mana yang menerima peristiwa penyimpanan?
Ringkasan
Peristiwa penyimpanan mengirimkan pemberitahuan antar-tab setiap kali localStorage berubah di tab lain, beserta key, oldValue, newValue, dan storageArea. Peristiwa ini tidak dipicu di tab yang menulis, jadi gabungkan dengan peristiwa khusus untuk pengiriman lokal dan jarak jauh secara menyeluruh. Gunakan cara ini untuk menyebarkan proses keluar, menyinkronkan tema, dan menjaga konsistensi status di seluruh jendela browser.
Belajar HTML dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendengarkan Peristiwa Penyimpanan” gratis?
Ya — teks lengkap “Mendengarkan Peristiwa Penyimpanan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mendengarkan Peristiwa Penyimpanan”?
Tanggapi perubahan penyimpanan lintas tab dengan peristiwa storage. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai HTML Academy?
Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Mendengarkan Peristiwa Penyimpanan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?
Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- localStorage vs sessionStorage
- Mendapatkan Mengatur dan Menghapus Item
- Mendengarkan Peristiwa Penyimpanan
- Keamanan Hal yang Tidak Boleh Disimpan di Penyimpanan