Berikan contoh:
Saya membuka dua halaman a dan b pada masa yang sama saya memfokuskan pada a dan melakukan beberapa operasi, membiarkan js pada halaman a memproses operasi saya dan menghantar data ke halaman b di sebelahnya. Pada masa ini, halaman b boleh menerima data ini dan memberi maklum balas tanpa memuat semula atau melalui pelayan. Sama seperti semasa mendengar lagu pada versi web Baidu Music PC, jika halaman Kotak Muzik Baidu dan halaman senarai telah dibuka, apabila saya mengklik butang "Main" lagu pada halaman senarai, halaman kotak muzik di sebelah ia boleh mula memainkan muzik itu secara automatik tanpa membuka halaman baharu.
Saya selalu merasakan bahawa menggunakan kuki atau sesuatu untuk melakukan ini agak tidak berguna.
Ini adalah soalan wawancara Alibaba dengan banyak kaedah. Komunikasi boleh dicapai dengan menggunakan acara penyimpanan localstorage juga boleh menyelesaikan masalah itu;
Jika anda boleh mengawal halaman ab dan juga memutuskan URL: sharedworker / localstorage / sessionstorage boleh digunakan
Atribut target="framename" bermaksud membuka pautan dalam bingkai (halaman) yang ditentukan
Boleh direalisasikan:
Apabila anda mengklik untuk menambah item ke troli beli-belah, jika halaman troli beli-belah sudah dibuka, hanya muat semula halaman tersebut. bukannya membuka halaman troli beli-belah yang baharu.
Apabila anda mengklik untuk memainkan lagu, jika halaman pemain sudah dibuka, hanya halaman itu akan dimuat semula dan bukannya membuka halaman pemain baharu.
Inilah idea:
Pelayar membuka dua halaman web dengan nama domain yang sama pada masa yang sama
localStorage
是共享的,不仅如此,他们之间的localStorage
值改变也是可以监听的。同域的a和b两个页面,a页面发生localStorage.set('abc', 123)
dan halaman b mereka boleh memantau perubahan dengan cara berikut: