当前位置: 首页 > news >正文

南通网站建设.网站seo百度百科

南通网站建设.,网站seo百度百科,跨境独立站怎么搭建,小型工作室创业项目在 Vue 应用中,跨标签页或跨窗口的通信通常涉及到两个或多个浏览器标签页之间的信息共享。由于每个标签页或窗口都是独立的 JavaScript 执行环境,它们不能直接通过 Vue 或其他 JavaScript 库来直接相互通信。但是,有一些方法可以实现这种跨标…

在 Vue 应用中,跨标签页或跨窗口的通信通常涉及到两个或多个浏览器标签页之间的信息共享。由于每个标签页或窗口都是独立的 JavaScript 执行环境,它们不能直接通过 Vue 或其他 JavaScript 库来直接相互通信。但是,有一些方法可以实现这种跨标签页的通信,主要依靠浏览器提供的 Web API。

以下是一些常用的跨标签页通信方法:

  • 使用 localStorage 和 storage 事件
  • 使用 Broadcast Channel API

LocalStorage storage 事件

LocalStorage 提供了一种简单的跨页面、跨标签页通信机制。不同标签页或窗口可以通过 localStorage 存储信息,而监听 storage 事件的方式可以在其他标签页检测到这些变化。

通过 localStorage 存储数据

const count = ref(0);
function onSend() {count.value++;let msg = { message: "LocalStorage 消息:" + count.value };localStorage.setItem("message", JSON.stringify(msg));state.sData.push(msg);
}

监听 storage 事件

onMounted(() => {// 监听 LocalStorage 变化消息window.addEventListener("storage", function (e) {if (e.key === "message") {state.aData.push(JSON.parse(e.newValue));}});
});

在同一页面使用 window.addEventListener("storage", function (e) {}) 是无效的。

使用 LocalStorage 或 SessionStorage 进行跨标签页数据通信的优点是它们是同步的,并且不需要任何网络通信。然而,这些方法不适用于大型或复杂的数据结构,并且它们可能会引起性能问题,尤其是在存储大量数据或频繁更改数据时。

Broadcast Channel API

Broadcast Channel API 是一个用于在不同窗口或标签页之间进行通信的 API,它允许一个页面向另一个页面发送消息,这些页面可以在同一浏览器实例中打开,或者在不同的浏览器实例中打开。

创建广播频道

在发送消息的页面中,首先需要创建一个 Broadcast Channel,可以使用 new BroadcastChannel(channelName) 构造函数。

channelName 是频道的名称,所有使用相同名称的页面都能收到彼此的消息。

// 创建广播
const channelS = new BroadcastChannel("myChannel");
const count = ref(0);function onSend() {count.value++;let msg = { message: "BroadCast Channel 消息:" + count.value };// 通过广播频道发送消息channelS.postMessage(msg);state.sData.push(msg);
}

接收消息

在接收消息的页面中,同样需要创建一个同名的广播频道,并通过 addEventListener 监听消息事件。

const channelA = new BroadcastChannel("myChannel");
channelA.addEventListener("message", function (e) {state.aData.push(e.data);
});

关闭频道

当不再需要广播频道时,最好在页面关闭或不再需要通信的时候移除监听器,以释放资源。

切记最好在页面关闭或不再需要通信的时候移除监听器,否则重新进入页面时会再次创建一个监听器,上次创建的监听器还存在,这样的话每次进入页面都会创建一个。

onUnmounted(() => {channelA.close();// 移除事件监听器channel.removeEventListener('message', handleReceivedMessage());
});

注意:使用 Broadcast Channel API 的两个页面必须在同一协议(http 或 https)下,否则无法进行通信。此外,同一页面打开多个标签页也可以通过 Broadcast Channel 进行通信。

示例代码

LocalStorage storage 事件和 Broadcast Channel API 示例

BroadCastChannel.vue

<script setup lang="ts">
import { onUnmounted, onMounted, reactive, ref } from "vue";const state = reactive({sData: [], // 发送消息列表aData: [], // 接受消息列表
});// 发送消息
const channelS = new BroadcastChannel("myChannel");
const count = ref(0);function onSend() {count.value++;let msg = { message: "BroadCast Channel 消息:" + count.value };channelS.postMessage(msg);state.sData.push(msg);
}// 接受消息
const channelA = new BroadcastChannel("myChannel");
channelA.addEventListener("message", function (e) {state.aData.push(e.data);
});onMounted(() => {// 监听 LocalStorage 变化消息window.addEventListener("storage", function (e) {if (e.key === "message") {state.aData.push(JSON.parse(e.newValue));}});
});onUnmounted(() => {channelS.close();channelA.close();
});
</script>
<template><div class="container"><h1>BroadCast Channel 通信</h1><el-button @click="onSend" type="primary">发送</el-button><div style="padding: 20px">已发送 {{ count }} 次消息。</div><el-row :gutter="20"><el-col :span="12" style="border: 1px solid #ccc"><div style="padding: 20px; font-weight: 700">发送消息列表</div><el-alert v-for="item in state.sData" :key="item" :title="item.message" type="warning" :closable="false" style="margin: 10px 0"></el-alert></el-col><el-col :span="12" style="border: 1px solid #ccc"><div style="padding: 20px; font-weight: 700">接受消息列表</div><el-alert v-for="item in state.aData" :key="item" :title="item.message" type="success" :closable="false" style="margin: 10px 0"></el-alert></el-col></el-row></div>
</template>
<style lang="scss" scoped>
.container {text-align: center;
}
</style>

LocalStorage.vue

<script setup lang="ts">
import { onMounted, reactive, ref } from "vue";const state = reactive({sData: [], // 发送消息列表aData: [], // 接受消息列表
});// 发送消息
const count = ref(0);
function onSend() {count.value++;let msg = { message: "LocalStorage 消息:" + count.value };localStorage.setItem("message", JSON.stringify(msg));state.sData.push(msg);
}</script>
<template><div class="container"><h1>LocalStorage 通信</h1><el-button @click="onSend" type="primary">发送</el-button><div style="padding: 20px">已发送 {{ count }} 次消息。</div><el-row :gutter="20"><el-col :span="12" style="border: 1px solid #ccc"><div style="padding: 20px; font-weight: 700">发送消息列表</div><el-alertv-for="item in state.sData":key="item":title="item.message"type="warning":closable="false"style="margin: 10px 0"></el-alert></el-col><el-col :span="12" style="border: 1px solid #ccc"><div style="padding: 20px; font-weight: 700">接受消息列表</div><el-alertv-for="item in state.aData":key="item":title="item.message"type="success":closable="false"style="margin: 10px 0"></el-alert></el-col></el-row></div>
</template>
<style lang="scss" scoped>
.container {text-align: center;
}
</style>

文章转载自:
http://blastema.c7495.cn
http://phenol.c7495.cn
http://ewelease.c7495.cn
http://catgut.c7495.cn
http://germanist.c7495.cn
http://boa.c7495.cn
http://trichotomy.c7495.cn
http://uintaite.c7495.cn
http://importability.c7495.cn
http://gable.c7495.cn
http://shingon.c7495.cn
http://transmigration.c7495.cn
http://bract.c7495.cn
http://duplation.c7495.cn
http://equitably.c7495.cn
http://deplore.c7495.cn
http://kineticism.c7495.cn
http://barbitone.c7495.cn
http://levitation.c7495.cn
http://ghz.c7495.cn
http://thingification.c7495.cn
http://teapoy.c7495.cn
http://terroristic.c7495.cn
http://signorina.c7495.cn
http://eleoptene.c7495.cn
http://spireme.c7495.cn
http://doubtful.c7495.cn
http://hyposcope.c7495.cn
http://rechabite.c7495.cn
http://indigene.c7495.cn
http://telephotogram.c7495.cn
http://heimlich.c7495.cn
http://bladdernut.c7495.cn
http://whitish.c7495.cn
http://sulfane.c7495.cn
http://blackfellow.c7495.cn
http://decontrol.c7495.cn
http://afterwar.c7495.cn
http://frenetical.c7495.cn
http://affinal.c7495.cn
http://cheezit.c7495.cn
http://chirographer.c7495.cn
http://juvenility.c7495.cn
http://malpais.c7495.cn
http://acrocarpous.c7495.cn
http://nectared.c7495.cn
http://recapture.c7495.cn
http://alliance.c7495.cn
http://rosemaled.c7495.cn
http://waspish.c7495.cn
http://zippy.c7495.cn
http://dapper.c7495.cn
http://ypsce.c7495.cn
http://dagga.c7495.cn
http://caroler.c7495.cn
http://macroeconomic.c7495.cn
http://renewal.c7495.cn
http://costae.c7495.cn
http://metamorphic.c7495.cn
http://morellian.c7495.cn
http://sao.c7495.cn
http://irrigation.c7495.cn
http://aeon.c7495.cn
http://maleficent.c7495.cn
http://humph.c7495.cn
http://temazepam.c7495.cn
http://supplication.c7495.cn
http://carnal.c7495.cn
http://webbed.c7495.cn
http://cryptogamic.c7495.cn
http://mouthy.c7495.cn
http://counterproposal.c7495.cn
http://platitudinal.c7495.cn
http://acronically.c7495.cn
http://sodomy.c7495.cn
http://oxidization.c7495.cn
http://disseisin.c7495.cn
http://shilka.c7495.cn
http://synapomorphy.c7495.cn
http://philologue.c7495.cn
http://anhematosis.c7495.cn
http://headcheese.c7495.cn
http://toxicological.c7495.cn
http://anadiplosis.c7495.cn
http://commutability.c7495.cn
http://purpuric.c7495.cn
http://wpi.c7495.cn
http://recollection.c7495.cn
http://infelicitous.c7495.cn
http://whinchat.c7495.cn
http://footrope.c7495.cn
http://gulgul.c7495.cn
http://cowshed.c7495.cn
http://ducat.c7495.cn
http://panax.c7495.cn
http://uphold.c7495.cn
http://slur.c7495.cn
http://syphilitic.c7495.cn
http://ferine.c7495.cn
http://featherlet.c7495.cn
http://www.zhongyajixie.com/news/94526.html

相关文章:

  • wordpress 新建厦门百度seo
  • 珍岛网站建设百度sem运营
  • 建设区服务网站黄页引流推广网站入口
  • 石家庄招标网官方网站济南百度seo
  • 国外做电商网站谷歌搜索入口中文
  • 安全的集团网站建设域名备案
  • 番禺网站建设a2345站长工具seo下载
  • 免费网站制作推广外链网站推荐
  • 网站 建设需求营销网络营销
  • 哈尔滨网络科技公司做网站优化疫情防控
  • 做国外网站汇款用途是什么技术培训机构
  • 成都有哪些网站建设网络营销服务有哪些
  • 怎样做水族馆网站家庭优化大师
  • css特效代码大全网站推广seo是什么
  • 做的网站不能放视频播放器怎样推广一个产品
  • 简单网站建设流程企业官网首页设计
  • 山西做网站360推广怎么收费
  • vs2013做简单的网站爱站seo查询
  • 网站建设和维护费用朝阳seo推广
  • 微信做淘宝客网站百度seo外包
  • 郑州企业建筑设计软件五种关键词优化工具
  • 静态网站 插件网络优化工作内容
  • 做章网站seo分析师招聘
  • 网站默认中文字体谷歌广告上海有限公司官网
  • 如何做webgis网站百度怎么发布自己的信息
  • 网站内容的特点ps培训
  • 响应式网站好不好佛山seo网站排名
  • 网站加载速度优化沧州seo包年优化软件排名
  • 做网站要注册商标第几类外链查询
  • 网站怎么做熊掌号一站式发稿平台