這篇文章分享給大家的內容是關於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);
上面的最後一行程式碼並不會觸發onstorage事件,因為a的值並沒有變化,前後都是123,所以瀏覽器判定這次更新是無效的
由於onstorage事件是瀏覽器觸發的,所以如果我們打開了多個相同網域名稱下的頁面,並在其中任一頁面執行window.localStorage.setItem方法(還要保證滿足文章開頭提到的第二個條件),那麼其他頁面如果監聽了onstorage事件,則這些頁面中的onstorage事件回呼都會被執行
舉例:
// 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> // 触发onstorage事件 window.localStorage.setItem('a', new Date().getTime()); </script>
只要保證c頁面在a和b頁面之後打開(哪怕三個頁面不在同一瀏覽器窗口,這裡需要區別視窗與tab頁的區別),那麼a和b頁面中的onstorage事件都會被觸發
現在我們已經知道如何利用storage event實現了頁面之間的通信,那麼這個通信對於我們有何用途呢?
其實我們只需知道是哪個storage的更新操作觸發了onstorage事件就足夠了,那我們要如何知道呢? onstorage事件回呼和其他事件回呼函數一樣,也接收一個event物件參數,在這個物件中有3個有用的屬性,它們分別是:
key 被初始化或更新的storage的鍵名稱
oldValue 被初始化或更新的storage之前的值
- ##newValue 被初始化或更新的storage之後的值
以上是Storage Event如何實現頁間通信的詳細內容。更多資訊請關注PHP中文網其他相關文章!

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器