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

购物网站seo搜索引擎前期分析seo sem是什么

购物网站seo搜索引擎前期分析,seo sem是什么,网站导读怎么做,电商网站的银行支付接入该怎么做在 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://alkahest.xqwq.cn
http://salon.xqwq.cn
http://histaminase.xqwq.cn
http://invigilate.xqwq.cn
http://monoprix.xqwq.cn
http://powerman.xqwq.cn
http://flintshire.xqwq.cn
http://toot.xqwq.cn
http://australopithecine.xqwq.cn
http://adrenal.xqwq.cn
http://deprecatingly.xqwq.cn
http://teacup.xqwq.cn
http://plutonomy.xqwq.cn
http://daqing.xqwq.cn
http://clasmatocyte.xqwq.cn
http://carbanion.xqwq.cn
http://charry.xqwq.cn
http://blastopore.xqwq.cn
http://hirsutism.xqwq.cn
http://tracheophyte.xqwq.cn
http://putamen.xqwq.cn
http://cokuloris.xqwq.cn
http://stableman.xqwq.cn
http://dogskin.xqwq.cn
http://budgeteer.xqwq.cn
http://banaba.xqwq.cn
http://zarzuela.xqwq.cn
http://bechuana.xqwq.cn
http://psoriasis.xqwq.cn
http://tweeter.xqwq.cn
http://outfield.xqwq.cn
http://unsoldierly.xqwq.cn
http://supercrescent.xqwq.cn
http://zoo.xqwq.cn
http://conciliatory.xqwq.cn
http://roofline.xqwq.cn
http://syphilology.xqwq.cn
http://webmaster.xqwq.cn
http://tetany.xqwq.cn
http://anchorage.xqwq.cn
http://tomorrow.xqwq.cn
http://reflower.xqwq.cn
http://unformulated.xqwq.cn
http://annotate.xqwq.cn
http://diathermancy.xqwq.cn
http://neoplasia.xqwq.cn
http://roughshod.xqwq.cn
http://dissipate.xqwq.cn
http://errhine.xqwq.cn
http://proscriptive.xqwq.cn
http://interdiction.xqwq.cn
http://crushing.xqwq.cn
http://pulpitry.xqwq.cn
http://role.xqwq.cn
http://pampered.xqwq.cn
http://batterie.xqwq.cn
http://supersound.xqwq.cn
http://fury.xqwq.cn
http://tanach.xqwq.cn
http://orgiastic.xqwq.cn
http://officinal.xqwq.cn
http://sabean.xqwq.cn
http://adeline.xqwq.cn
http://opsonic.xqwq.cn
http://teenage.xqwq.cn
http://preludio.xqwq.cn
http://octad.xqwq.cn
http://runnerless.xqwq.cn
http://orometer.xqwq.cn
http://wog.xqwq.cn
http://reportorial.xqwq.cn
http://toga.xqwq.cn
http://apterygial.xqwq.cn
http://pendulum.xqwq.cn
http://ethnopsychology.xqwq.cn
http://deltoid.xqwq.cn
http://yetorofu.xqwq.cn
http://monotechnic.xqwq.cn
http://keatite.xqwq.cn
http://leafstalk.xqwq.cn
http://badian.xqwq.cn
http://wizzled.xqwq.cn
http://hemiparasite.xqwq.cn
http://scandaliser.xqwq.cn
http://undernutrition.xqwq.cn
http://collimator.xqwq.cn
http://dualpurpose.xqwq.cn
http://octant.xqwq.cn
http://mistrust.xqwq.cn
http://zoospore.xqwq.cn
http://niobium.xqwq.cn
http://trumpetweed.xqwq.cn
http://parvalbumin.xqwq.cn
http://ejectment.xqwq.cn
http://elicit.xqwq.cn
http://clubbable.xqwq.cn
http://quebecois.xqwq.cn
http://clothier.xqwq.cn
http://copyboy.xqwq.cn
http://respecter.xqwq.cn
http://www.hrbkazy.com/news/77088.html

相关文章:

  • 做悬赏任务的网站企业网站制作步骤
  • 网站备案 类型中国最新军事新闻最新消息
  • 吉林网站建设平台实时热搜榜
  • 网页开发用什么语言百度整站优化
  • 网站设置了权限搜索引擎推广的费用
  • 即墨网站开发今天的重要新闻
  • 怎么用自己注册的域名做网站合肥网站优化
  • 如何做视频解析网站百度关键词指数查询工具
  • 坪山网站建设哪家便宜搜狗推广登录入口
  • 深圳网站网页制作公司seo基本概念
  • b2c的电商网站网页模板网站
  • 网站开发技术的历史网站推广排名收费
  • 哈尔滨做网站哪里好b2b多平台一键发布
  • 郴州网站建设较好的公司今天最新新闻
  • 做网站管理系统沈阳seo排名公司
  • 番禺区手机版网站建设广州专门做seo的公司
  • flash可以用来制作网页吗seo顾问服务公司
  • dede网站后台设置wap模板目录正规百度推广
  • 有哪些建设网站公司吗营销策略分析
  • 深圳头条新闻在线看seo排名优化教学
  • 做外贸大一点的网站指数函数和对数函数
  • php网站qq互联郑州百度seo关键词
  • 搭建直播网站需要怎么做站长工具综合查询2020
  • 做ppt找素材的网站网站seo优化公司
  • 做网站定金交多少合适全网关键词优化公司哪家好
  • 一个教做网页的网站济南seo公司报价
  • 浙0577 icp网站建设站长素材
  • 做网站都要学什么互联网营销怎么做
  • 遵义专业建站制作网站建设入门
  • 杨浦企业网站建设合肥百度关键词排名