同源不同頁面之間的通信,SharedWorker使用

同源不同頁面之間的通信,SharedWorker使用

      • 描述
      • 實現
      • 結果

描述

同源不同頁面之間的通信,使用SharedWorker,或者使用全局方法通信,這里使用SharedWorker來實現
mdn地址:https://developer.mozilla.org/zh-CN/docs/Web/API/SharedWorker

實現

/*** @description 所有連接這個worker的集合*/
const portsList = []/*** @description 連接成功回調*/
self.onconnect = (event) => {console.log('self', self)// 當前觸發連接的端口const port = event.ports[0]// 添加進去portsList.push(port)// 接收到消息的回調port.onmessage = (event) => {// 獲取傳遞的消息const { message, value } = event.data// 計算let result = 0switch (message) {case 'add':result = value * 2breakcase 'multiply':result = value * valuebreakdefault:result = value}// 給所有連接的目標發送消息portsList.forEach((port) => port.postMessage(`${message}結果是22:${result}`))}
}
console.log('self', self)
const sharedWorker = new SharedWorker(new URL('./worker.js', import.meta.url))
console.log('url', new URL('./worker.js', import.meta.url), import.meta.url)
export default sharedWorker// 為何用這個文件統一new  因為不統一在這里new的話,會因為模塊文件不同,導致new的文件不同而不是同一個實例,會不能共享線程
// 用URL來處理文件路徑,轉換成打包后的正確地址
  1. 為何用這個文件統一new 因為不統一在這里new的話,會因為模塊文件不同,導致new的文件不同而不是同一個實例,會不能共享線程
  2. 用URL來處理文件路徑,轉換成打包后的正確地址
    test1.vue
<template><div><div @click="sendMessage">666</div></div>
</template>
<script>
import hook from './hook.js'
export default {mounted() {hook.port.start()// // 接收SharedWorker返回的結果hook.port.onmessage = (event) => {console.log(event.data, '666')}},methods: {sendMessage() {console.log('hook66', hook)hook.port.postMessage({ message: 'add', value: 1 })},}
}
</script>

text2.vue

<template><div><div @click="sendMessage">777</div></div>
</template>
<script>
import hook from './hook.js'
export default {mounted() {hook.port.start()// // 接收SharedWorker返回的結果hook.port.onmessage = (event) => {console.log(event.data, '777')}},methods: {sendMessage() {console.log('hook77', hook)hook.port.postMessage({ message: 'multiply', value: 3 })},}
}
</script>

ceshi.html

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>iframe {width: 300px;height: 300px;}</style></head><body><iframe src="http://localhost:8080/#/s1" frameborder="0"></iframe><iframe src="http://localhost:8080/#/s2" frameborder="0"></iframe></body>
</html>

結果

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713908.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713908.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713908.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA學習-類和接口.類和面向對象

一、Java中的類和接口是面向對象編程的重要概念。 1. 類是一種模板或藍圖&#xff0c;用于創建具有相同屬性和行為的對象。類定義了對象的屬性&#xff08;成員變量&#xff09;和行為&#xff08;方法&#xff09;。在程序中&#xff0c;可以通過實例化類來創建對象&#xff…

Odoo邁入開源第一低代碼開發平臺的重要里程碑

Odoo17的正式發布已經過去好幾個月了&#xff0c;通過一段時間的運用&#xff0c;最大的感觸就是&#xff0c;Odoo會成為企業管理軟件低代碼開發平臺的重要一員&#xff0c;而V17則會成為這個過程中具有里程碑意義的版本。 時隔四個月&#xff0c;讓我們回頭來看看Odoo17帶來的…

基YOLOV5實現的AI智能盒子

基于yolov5實現的AI智能盒子框架 開發背景技術實現產品效果源碼預覽功能介紹 2021-2023是沉淀的幾年&#xff0c;經濟不景氣&#xff0c;各行各業都不太好混&#xff0c;所以這幾年也沒有太多心思花在csdn上為各大網友寫一些技術文章&#xff0c;2024年初&#xff0c;也算是給自…

光柵化算法

多數計算機圖形圖像&#xff0c;是通過光柵顯像顯示給用戶的&#xff0c;這種系統將圖像作為像素陣列進行顯示&#xff0c;像素&#xff08;pixel&#xff09;即圖像元素&#xff08;picture element&#xff09;的簡稱。這些像素采用RGB顏色空間。本文討論光柵顯像的基本原理&…

藍牙耳機哪個好用性價比高?2024熱銷藍牙耳機大測評!選購不焦慮

?近年來&#xff0c;藍牙耳機已經成為了一個非常熱門的選擇&#xff0c;不僅因為它們小巧便捷&#xff0c;還因為它們的防水性能、音質和佩戴體驗已經逐漸超越了有線耳機。隨著越來越多的品牌加入藍牙耳機的市場競爭&#xff0c;各種類型的藍牙耳機層出不窮。特別是對于運動愛…

2024年全國乙卷高考理科數學備考:十年選擇題真題和解析

今天距離2024年高考還有三個多月的時間&#xff0c;今天我們來看一下2014~2023年全國乙卷高考理科數學的選擇題&#xff0c;從過去十年的真題中隨機抽取5道題&#xff0c;并且提供解析。后附六分成長獨家制作的在線練習集&#xff0c;科學、高效地反復刷這些真題&#xff0c;吃…

GEE數據集——GLC_FCS30D - 全球 30 米土地覆被變化數據集(1985-2022 年)

GLC_FCS30D - 全球 30 米土地覆被變化數據集&#xff08;1985-2022 年&#xff09; 注 本數據集是正在提交的論文的一部分&#xff0c;因此沒有引用和 DOI 信息。請在使用本數據集時注意這一點。 GLC_FCS30D 數據集是全球土地覆被監測領域的一項開創性進展&#xff0c;它以 30…

SpringBoot 整合WebService

文章目錄 WebService1.簡單介紹WebService1.1. 類型1.2. 架構1.3. 主要特點1.4. 使用場景1.5. Web服務標準和技術 2.案例-WebServiceDemo2.1.引入配置文件2.2.創建接口2.3.創建接口實現類2.4.創建WebService配置類2.5.測試 WebService Web服務&#xff08;Web Services&#xf…

2024年騰訊云優惠券/代金券領取三個方法整理(收藏級)

騰訊云代金券領取渠道有哪些&#xff1f;騰訊云官網可以領取、官方媒體賬號可以領取代金券、完成任務可以領取代金券&#xff0c;大家也可以在騰訊云百科蹲守代金券&#xff0c;因為騰訊云代金券領取渠道比較分散&#xff0c;騰訊云百科txybk.com專注匯總優惠代金券領取頁面&am…

CentOS系統上安裝幻獸帕魯/Palworld服務端的詳細步驟是什么?

CentOS系統上安裝幻獸帕魯/Palworld服務端的詳細步驟是什么&#xff1f; 首先&#xff0c;需要確認Docker是否已經安裝。如果未安裝&#xff0c;則需要進行安裝。接下來&#xff0c;運行Docker容器。這一步是為了創建一個可以運行幻獸帕魯服務端的環境。然后&#xff0c;在容器…

民爆5G智能制造工廠數字孿生可視化平臺,推進民爆工業數字化轉型

民爆5G工廠智能制造數字孿生可視化平臺&#xff0c;推進行業數字化轉型。民爆行業作為國家經濟發展的重要支柱產業&#xff0c;其數字化轉型對于提高生產效率、降低成本、保障安全等方面具有重要意義。而民爆5G工廠智能制造數字孿生可視化平臺正是推進行業數字化轉型的關鍵技術…

Flutter中Future和Stream關系

Future和Stream類是Dart異步編程的核心。 Future 表示一個不會立即完成的計算過程。與普通函數直接返回結果不同的是異步函數返回一個將會包含結果的 Future。該 Future 會在結果準備好時通知調用者。 Stream 是一系列異步事件的序列。其類似于一個異步的 Iterable&#xff0c;…

AutoEncoder和 Denoising AutoEncoder學習筆記

參考&#xff1a; 【1】 https://lilianweng.github.io/posts/2018-08-12-vae/ 寫在前面&#xff1a; 只是直覺上的認識&#xff0c;并沒有數學推導。后面會寫一篇&#xff08;抄&#xff09;大一統文章&#xff08;概率角度理解為什么AE要選擇MSE Loss&#xff09; TOC 1 Au…

1907_Arm Cortex-M3的基本了解

1907_Arm Cortex-M3的基本了解 全部學習匯總&#xff1a; g_arm_cores: ARM內核的學習筆記 (gitee.com) 我發現Arm Coretex-M3有一個專門的DataSheet&#xff0c;看起來這個的確是被當做了一個設計的產品來對待的。正好&#xff0c;基于這個文件來看看M3具備哪些基本的特性&…

GO—變量

Go語言是靜態類型語言&#xff0c;因此變量&#xff08;variable&#xff09;是有明確類型的&#xff0c;編譯器也會檢查變量類型的正確性。 我們從計算機系統的角度來講&#xff0c;變量就是一段或者多段內存&#xff0c;用于存儲數據 1.1 標準格式 var 變量名 變量類型 1 …

vue 使用vue-scroller 列表滑動到底部加載更多數據

安裝插件 npm install vue-scroller -dmain.js import VueScroller from vue-scroller Vue.use(VueScroller)<template><div class"wrap"><div class"footer"><div class"btn" click"open true">新增</d…

多層控制上身姿態的方法

1選擇要施加的clip并調出層控制窗口 2點選motion層控制 3選擇并復制pose&#xff08;注意在哪個層中選中的情況下復制的是那個層中的pose&#xff09; 4在新建層中分別選擇頭幀粘貼pose和尾幀粘貼pose因是上半身&#xff0c;因此mask中把下半身去掉即變灰

提升工作能力的方法

1.接受工作&#xff0c;只問標準 2.請示工作&#xff0c;必帶方案&#xff1b; 3.匯報工作&#xff0c;突出成果&#xff1b; 4.分享工作&#xff0c;細說流程&#xff1b; 5.復盤工作&#xff0c;總結SOP 如果能這么做&#xff0c;那將是一個非常通透的高手&#xff0c;所以高…

如何使用 takeUntil RxJS 操作符來聲明性地管理訂閱

簡介 Angular 處理取消訂閱可觀察對象的操作&#xff0c;比如從 HTTP 服務返回的可觀察對象或者使用 async 管道時。然而&#xff0c;對于其他情況&#xff0c;管理所有訂閱并確保取消長期存在的訂閱可能會變得困難。而且&#xff0c;取消大部分訂閱的策略也會帶來自己的問題。…

2024年春招小紅書前端實習面試題分享

文章目錄 導文面試重點一、方便介紹一下&#xff0c;你之前實習都做了什么嘛&#xff1f;二、 可以講一下封裝組件相關邏輯嘛&#xff1f;1. 為什么要封裝組件&#xff1f;2. 封裝組件的步驟3. 封裝組件的原則4. 組件的復用和擴展5. 組件的維護和文檔 三、項目的性能優化你有什…