第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

選項(xiàng)卡或窗口之間的通信

選項(xiàng)卡或窗口之間的通信

梵蒂岡之花 2019-06-11 21:08:23
選項(xiàng)卡或窗口之間的通信我在尋找一種在瀏覽器中(在同一域中,而不是在CORS)中如何在多個(gè)選項(xiàng)卡或窗口之間進(jìn)行通信而不留下痕跡的方法。有幾種解決辦法:使用窗口對(duì)象后訊息曲奇餅局部存儲(chǔ)第一種可能是最糟糕的解決方案-您需要從當(dāng)前的窗口打開一個(gè)窗口,然后您只能在打開窗口的情況下才能進(jìn)行通信。如果在任何窗口中重新加載頁(yè)面,則很可能會(huì)丟失通信。第二種方法,使用PostMessage,可能支持跨源通信,但與第一種方法有相同的問題。您需要維護(hù)一個(gè)窗口對(duì)象。第三種方法是使用cookie將一些數(shù)據(jù)存儲(chǔ)在瀏覽器中,這樣看起來就像向同一域中的所有窗口發(fā)送消息一樣,但問題是,在清理之前,您永遠(yuǎn)無法知道所有選項(xiàng)卡是否已經(jīng)讀取了“消息”。您必須實(shí)現(xiàn)某種超時(shí)才能定期讀取cookie。此外,您還受到最大Cookie長(zhǎng)度的限制,最大Cookie長(zhǎng)度為4KB。第四種解決方案,使用localStorage,似乎克服了cookie的局限性,甚至可以監(jiān)聽-使用事件。如何使用它是在被接受的答案中描述的。編輯2018:公認(rèn)的答案仍然有效,但是對(duì)于現(xiàn)代瀏覽器來說,使用BroadCastChannel還有一個(gè)新的解決方案。有關(guān)一個(gè)簡(jiǎn)單的示例,請(qǐng)參見另一個(gè)答案,該示例描述了如何使用BroadCastChannel在制表符之間輕松地傳輸消息。
查看完整描述

3 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

有一個(gè)現(xiàn)代化的API專門用于這個(gè)目的-廣播頻道

它就像:

var bc = new BroadcastChannel('test_channel');bc.postMessage('This is a test message.');
 /* send */bc.onmessage = function (ev) { console.log(ev); } /* receive */

消息不需要僅僅是DOMString,任何類型的對(duì)象都可以發(fā)送。

也許,除了API的清潔性之外,這也是這個(gè)API的主要好處-沒有對(duì)象字符串化。

目前支撐僅在Chrome和Firefox中,但您可以找到使用localStorage的多填充。


查看完整回答
反對(duì) 回復(fù) 2019-06-11
  • 3 回答
  • 0 關(guān)注
  • 561 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)