Broadcast Channel API 是瀏覽器提供的同一源下跨標(biāo)簽頁(yè)通信方案,通過創(chuàng)建同名頻道實(shí)例實(shí)現(xiàn)消息收發(fā),支持 postMessage 發(fā)送和 onmessage 監(jiān)聽,適用于狀態(tài)同步與操作通知,需注意僅限同源、數(shù)據(jù)可序列化、不保證消息順序,且應(yīng)調(diào)用 close() 釋放資源。
Broadcast Channel API 是瀏覽器提供的一種輕量級(jí)跨標(biāo)簽頁(yè)通信方式,允許同一源下的不同頁(yè)面實(shí)例之間發(fā)送和接收消息。它使用簡(jiǎn)單,不需要依賴服務(wù)器或復(fù)雜的存儲(chǔ)機(jī)制,適合實(shí)現(xiàn)頁(yè)面間的狀態(tài)同步、用戶操作通知等場(chǎng)景。
要使用 Broadcast Channel API,首先需要?jiǎng)?chuàng)建一個(gè) BroadcastChannel 實(shí)例,傳入一個(gè)通道名稱(字符串),所有使用相同名稱的頻道可以互相通信。
示例代碼:
const channel = new BroadcastChannel('my-channel');只要多個(gè)標(biāo)簽頁(yè)都連接到名為 'my-channel' 的頻道,它們就能互相收發(fā)消息。
假設(shè)你有兩個(gè)頁(yè)面(或同一個(gè)頁(yè)面打開多個(gè)標(biāo)簽),可以通過以下方式實(shí)現(xiàn)雙向通信:
完整示例:
// page.js在另一個(gè)標(biāo)簽頁(yè)中運(yùn)行相同代碼,即可看到消息互通。
Broadcast Channel 雖然簡(jiǎn)單易用,但需要注意以下幾點(diǎn):
基本上就這些。對(duì)于簡(jiǎn)單的標(biāo)簽頁(yè)通信需求,Broadcast Channel API 是最直接的選擇,無(wú)需引入額外依賴。
以上就是如何用Broadcast Channel API實(shí)現(xiàn)標(biāo)簽頁(yè)通信?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)