溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一機雙屏和雙屏通信方案總結

發布時間:2020-06-04 19:43:41 來源:網絡 閱讀:710 作者:鄒君安 欄目:網絡安全

項目中需要用到web一機雙屏,也就是一臺電腦,兩個屏幕,每個屏幕分別展示一部分的內容,兩個web標簽頁之間自然少不了實時通信和互動,下面簡單介紹一下,在項目中對該問題的思考和最終解決方案:

一:打開兩個標簽頁的方案

    1.如果打開的標簽頁是固定的,則可以直接在a標簽加上target="_blank"屬性搞定!例如:打開必應首頁     代碼為:  <a target="_blank">必應首頁</a>

    2.如果頁面地址是動態變化的,則可以使用js的 window.open(url)方法。

有兩個注意點:

第一個安全性問題:如果父頁面和新打開的頁面詩不同域名的,瀏覽器會禁止新窗口訪問opener中內容,但是可以通過window.opener.location=newURl來重寫父頁面的url,即使與父頁面不同域。如果父窗口沒有做防止被iframe嵌入,那么可以使用iframe做一個釣魚頁面,如果不注意url的化,你可能就被釣魚了。

第二個性能問題:chrome每個標簽頁都是一個單獨的進程,然后進程內包含很多個線程,但是如果是通過a標簽的target="_blank"或者window.open(url)在新窗口中打開頁面,子窗口會于父窗口共用進程和線程,子窗口如果進行了復雜的運算或者請求,那么父窗口極有可能被卡住。

破解方法:

1.通過在a標簽上添加這個noopener屬性,可以將新打開窗口的opner置為空。

2.window.open并設置opner為空

1 var newWindow= window.open('xxx');2 newWindow.opener = null;

二:雙屏通信方案

1.localStorage

通過監聽localStorage的數據變化實現同一瀏覽器下不同頁面之間的通訊,(跨域不適用,需要結合postmessage),在雙屏有大量的通訊的時候,建議使用,方便快捷!

推薦lsbridge庫直接進行應用。

一機雙屏和雙屏通信方案總結

2.WebSocket

關于websocket,不在進行詳細說明,在博文服務器端推送技術總結中,有詳細說明


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女