Rumah hujung hadapan web Tutorial H5 利用Storage Event实现页面间通信的示例代码

利用Storage Event实现页面间通信的示例代码

Oct 09, 2018 pm 04:46 PM
event storage

这篇文章主要介绍了利用Storage Event实现页面间通信的示例代码的相关资料,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

我们都知道触发window.onstorage必须满足以下两个条件:

  • 通过localStorage.setItem或sessionStorage.setItem保存(更新)某个storage

  • 保存(更新)这个storage时,它的新值必须与之前的值不同

上面的第二个条件,简单来讲就是:要么是storage的初始化,因为不存在的storage,其值为null;要么就是对已有storage的更新

举例:

// 初始化storage
window.localStorage.setItem('a', 123);

// 注册onstorage事件
window.onstorage = (e) => {
  console.log(e);
};

// 更新storage
window.localStorage.setItem('a', 123);
Salin selepas log masuk

上面的最后一行代码并不会触发onstorage事件,因为a的值并没有变化,前后都是123,所以浏览器判定这次更新是无效的

由于onstorage事件是浏览器触发的,所以如果我们打开了多个相同域名下的页面,并在其中任一一个页面执行window.localStorage.setItem方法(还要保证满足文章开头提到的第二个条件),那么其他页面如果监听了onstorage事件,则这些页面中的onstorage事件回调都会被执行

举例:

// http://www.example.com/a.html
<script>
// 注册onstorage事件
window.onstorage = (e) => {
  console.log(e);
};
</script>
Salin selepas log masuk
// http://www.example.com/b.html
<script>
// 注册onstorage事件
window.onstorage = (e) => {
  console.log(e);
};
</script>
Salin selepas log masuk
// http://www.example.com/c.html
<script>
// 触发onstorage事件
window.localStorage.setItem(&#39;a&#39;, new Date().getTime());
</script>
Salin selepas log masuk

只要保证c页面在a和b页面之后打开(哪怕三个页面不在同一浏览器窗口,这里需要区别窗口与tab页的区别),那么a和b页面中的onstorage事件都会被触发

现在我们已经知道如何利用storage event实现了页面之间的通信,那么这个通信对于我们有何用途呢?

其实我们只需知道是哪个storage的更新操作触发了onstorage事件就足够了,那么我们如何知道呢?onstorage事件回调和其他事件回调函数一样,也接收一个event对象参数,在这个对象中有3个有用的属性,它们分别是:

  • key 被初始化或更新的storage的键名

  • oldValue 被初始化或更新的storage之前的值

  • newValue 被初始化或更新的storage之后的值

结合这3个关键属性,我们就可以实现页面间的数据同步

最后提一下localStorage与sessionStorage的区别

localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问Html5视频教程

相关推荐:

php公益培训视频教程

HTML5图文教程

HTML5在线手册

Atas ialah kandungan terperinci 利用Storage Event实现页面间通信的示例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pustaka pemprosesan acara dalam PHP8.0: Acara Pustaka pemprosesan acara dalam PHP8.0: Acara May 14, 2023 pm 05:40 PM

Pustaka pemprosesan acara dalam PHP8.0: Peristiwa Dengan pembangunan berterusan Internet, PHP, sebagai bahasa pengaturcaraan akhir belakang yang popular, digunakan secara meluas dalam pembangunan pelbagai aplikasi Web. Dalam proses ini, mekanisme yang didorong oleh peristiwa telah menjadi bahagian yang sangat penting. Pustaka pemprosesan acara Acara dalam PHP8.0 akan menyediakan kami kaedah pemprosesan acara yang lebih cekap dan fleksibel. Apakah pengendalian acara? Pengendalian acara adalah konsep yang sangat penting dalam pembangunan aplikasi web. Acara boleh terdiri daripada sebarang jenis baris pengguna

Jualan Musim Panas Steam - Valve memberi diskaun 95% untuk permainan AAA, mengesahkan diskaun untuk permainan viral Palworld dan Amaran Kandungan Jualan Musim Panas Steam - Valve memberi diskaun 95% untuk permainan AAA, mengesahkan diskaun untuk permainan viral Palworld dan Amaran Kandungan Jun 26, 2024 pm 03:40 PM

Jualan Musim Panas Steam sebelum ini telah menjadi tuan rumah kepada beberapa diskaun permainan terbaik, dan tahun ini nampaknya akan disusun untuk satu lagi kendalian rumah oleh Valve. Treler (tonton di bawah) yang mengusik beberapa permainan diskaun Jualan Musim Panas Steam baru sahaja dikeluarkan i

storage文件夹在哪里 storage文件夹在哪里 Jan 12, 2021 pm 02:02 PM

storage文件夹在文件管理中,其查找方法:1、直接打开手机桌面,点击系统工具进入;2、选择文件管理跳转;3、浏览全部文件;4、在文件管理中找到storage文件夹即可。

Cara menggunakan modul acara Acara Pygame dalam Python Cara menggunakan modul acara Acara Pygame dalam Python May 18, 2023 am 11:58 AM

Modul Acara (Event) Pygame ialah salah satu modul penting Pygame Ia adalah teras membina keseluruhan program permainan, seperti klik tetikus yang biasa digunakan, ketik papan kekunci, pergerakan tetingkap permainan, saiz semula tetingkap, mencetuskan plot tertentu dan keluar. . Permainan, dsb., ini boleh dianggap sebagai "acara". Jenis acara Pygame mentakrifkan struktur yang khusus digunakan untuk memproses acara, iaitu baris gilir peristiwa Struktur ini mengikut prinsip asas "dahulu diproses" dalam baris gilir, kita boleh memproses operasi pengguna secara teratur dan satu -oleh satu cara ( peristiwa pencetus). Jadual berikut menyenaraikan acara permainan yang biasa digunakan dalam Pygame: Nama Penerangan BERHENTI Pengguna menekan butang tutup tetingkap ATIVEEVENTPy

Treler Steam Summer Sale menggoda 95% diskaun tawaran permainan AAA, mengesahkan potongan harga untuk Palworld, Stellaris, Amaran Kandungan Treler Steam Summer Sale menggoda 95% diskaun tawaran permainan AAA, mengesahkan potongan harga untuk Palworld, Stellaris, Amaran Kandungan Jun 26, 2024 am 06:30 AM

Jualan Musim Panas Steam sebelum ini telah menjadi tuan rumah kepada beberapa diskaun permainan terbaik, dan tahun ini nampaknya akan disusun untuk satu lagi kendalian rumah oleh Valve. Treler (tonton di bawah) yang mengusik beberapa permainan diskaun Jualan Musim Panas Steam baru sahaja dikeluarkan i

Dalam JavaScript, apabila tetingkap penyemak imbas diubah saiz, peristiwa manakah ini? Dalam JavaScript, apabila tetingkap penyemak imbas diubah saiz, peristiwa manakah ini? Sep 05, 2023 am 11:25 AM

Gunakan peristiwa window.outerWidth dan window.outerHeight untuk mendapatkan saiz tetingkap dalam JavaScript apabila penyemak imbas mengubah saiz. Contoh Anda boleh cuba menjalankan kod berikut untuk menyemak saiz tetingkap penyemak imbas menggunakan acara −&lt;!DOCTYPEhtml&gt;&lt;html&gt; &lt;skrip&gt;&am

Terokai ciri dan faedah SessionStorage Terokai ciri dan faedah SessionStorage Jan 11, 2024 pm 03:16 PM

Pengenalan kepada SessionStorage: Untuk memahami kegunaan dan kelebihannya, contoh kod khusus diperlukan Pengenalan: Dalam pembangunan web, kita selalunya perlu menyimpan dan mengurus maklumat pengguna dan data sementara. Untuk menyelesaikan masalah ini, HTML5 memperkenalkan API baharu: SessionStorage. Artikel ini akan memperkenalkan konsep, kegunaan dan kelebihan SessionStorage dan memberikan beberapa contoh kod khusus untuk membantu pembaca memahaminya dengan lebih baik. 1. Apakah itu SessionStorage?

Tesla menghantar jemputan Robotaxi untuk acara demo pemanduan autonomi 10 Oktober di LA Tesla menghantar jemputan Robotaxi untuk acara demo pemanduan autonomi 10 Oktober di LA Sep 27, 2024 am 06:20 AM

Pada mulanya dijangkakan bahawa Tesla akan memperkenalkan Robotaxi yang bocor sebelum ini pada Ogos tahun ini, tetapi Ketua Pegawai Eksekutif Elon Musk menangguhkan acara itu, memetik perubahan estetik pada bahagian hadapan robotaxi dan masa tambahan yang diperlukan untuk beberapa minit terakhir.

See all articles