小編給大家分享一下利用Storage Event實現(xiàn)頁面間通信的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在黑山等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計 網(wǎng)站設計制作按需定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,營銷型網(wǎng)站建設,外貿(mào)營銷網(wǎng)站建設,黑山網(wǎng)站建設費用合理。我們都知道觸發(fā)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);
上面的最后一行代碼并不會觸發(fā)onstorage事件,因為a的值并沒有變化,前后都是123,所以瀏覽器判定這次更新是無效的
由于onstorage事件是瀏覽器觸發(fā)的,所以如果我們打開了多個相同域名下的頁面,并在其中任一一個頁面執(zhí)行window.localStorage.setItem方法(還要保證滿足文章開頭提到的第二個條件),那么其他頁面如果監(jiān)聽了onstorage事件,則這些頁面中的onstorage事件回調(diào)都會被執(zhí)行
舉例:
// http://www.example.com/a.html <script> // 注冊onstorage事件 window.onstorage = (e) => { console.log(e); }; </script>
// http://www.example.com/b.html <script> // 注冊onstorage事件 window.onstorage = (e) => { console.log(e); }; </script>
// http://www.example.com/c.html <script> // 觸發(fā)onstorage事件 window.localStorage.setItem('a', new Date().getTime()); </script>
只要保證c頁面在a和b頁面之后打開(哪怕三個頁面不在同一瀏覽器窗口,這里需要區(qū)別窗口與tab頁的區(qū)別),那么a和b頁面中的onstorage事件都會被觸發(fā)
現(xiàn)在我們已經(jīng)知道如何利用storage event實現(xiàn)了頁面之間的通信,那么這個通信對于我們有何用途呢?
其實我們只需知道是哪個storage的更新操作觸發(fā)了onstorage事件就足夠了,那么我們?nèi)绾沃滥??onstorage事件回調(diào)和其他事件回調(diào)函數(shù)一樣,也接收一個event對象參數(shù),在這個對象中有3個有用的屬性,它們分別是:
key 被初始化或更新的storage的鍵名
oldValue 被初始化或更新的storage之前的值
newValue 被初始化或更新的storage之后的值
結合這3個關鍵屬性,我們就可以實現(xiàn)頁面間的數(shù)據(jù)同步
最后提一下localStorage與sessionStorage的區(qū)別
localStorage 里面存儲的數(shù)據(jù)沒有過期時間設置,而存儲在 sessionStorage 里面的數(shù)據(jù)在頁面會話結束時會被清除
以上是利用Storage Event實現(xiàn)頁面間通信的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!
網(wǎng)頁名稱:利用StorageEvent實現(xiàn)頁面間通信的方法-創(chuàng)新互聯(lián)
標題來源:http://jinyejixie.com/article14/dhdhge.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、服務器托管、虛擬主機、企業(yè)建站、關鍵詞優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容