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

商业门户网站制作seo技术培训教程视频

商业门户网站制作,seo技术培训教程视频,网页游戏h5排行榜,wordpress使用图床最近发现一个问题,我在使用 websocket 的时候,在主页面进行了 websocket 连接了之后,再使用 iframe 打开子页面的时候,通常会触发页面刷新,这样就导致 WebSocket 断开,这是因为切换 src 会重新加载 iframe …

        最近发现一个问题,我在使用 websocket 的时候,在主页面进行了 websocket 连接了之后,再使用 iframe 打开子页面的时候,通常会触发页面刷新,这样就导致 WebSocket 断开,这是因为切换 src 会重新加载 iframe 内容,使得页面环境重置,进而导致 WebSocket 连接丢失。

问题复现

页面

<div style="width: 100%; height: 100vh; position: fixed; display: flex; margin-top: 5px;left: 0;"><div style="background: #EDEDED; width: 200px; height: 100%; margin: 0; display: inline-block;"><el-row class="tac"><el-col :span="12"><el-menu style="width: 200px;background-color: #EDEDED" :unique-opened="true"><el-sub-menu index="1"><template #title><span>系统管理</span></template><el-menu-item style="background-color: #F7F7F7" index="1-1" @click="customerManagement">用户管理</el-menu-item></el-sub-menu><el-sub-menu index="2"><template #title><span>即时通讯</span></template><el-menu-item style="background-color: #F7F7F7" index="2-1" @click="toContactListPage">联系人</el-menu-item><el-menu-item style="background-color: #F7F7F7; position: relative; display: flex; align-items: center;" index="2-2" @click="toMessagePage">消息</el-menu-item></el-sub-menu></el-menu></el-col></el-row></div><div style="width: 100%; height: 100vh; margin-left: 5px;"><iframe style="background-color: white; width: 100%; height: 100vh; border: none;" :src="iframePage"></iframe></div></div>

导航

let iframePage = ref("/zecSystemManagement/DataScreen");
// 点击用户管理
const customerManagement = async() => {iframePage.value = "/zecSystemManagement/UserManagementPage";
};// 点击好友列表
const toContactListPage = async() => {iframePage.value = "/zecInstantMessaging/ContactListPage";
};// 点击消息
const toMessagePage = async() => {iframePage.value = "/zecInstantMessaging/MessagePage";
};

websocket 连接

        这个是 websocket.js 页面获取 websocket 实例的一个方法。

export async function getWebSocket() {console.log(webSocket);if (webSocket === undefined){console.log("ddd");// 连接 websocket 的方法await connectWebSocket(getAccountBySessionStorage());}return webSocket;
}

打印

         控制台打印的就是跳转页面后,获取 websocket 实例,调用 getWebSocket 方法。

 

        可以看到这种写法很不好用,每次点击一个导航栏都会导致 websocket 重连,然后我苦心钻研两天半,发现了下面好用一点的写法。

问题解决

页面

        上面导航栏的页面不变,下面的 iframe 使用 keep-alive 替代。

        在 Vue.js 中,<keep-alive>是一个内置组件,用于缓存组件实例,避免重复渲染和销毁。

<div style="width: 100%; height: 100vh; margin-left: 5px;">
<!--        <iframe id="iframe" style="background-color: white; width: 100%; height: 100vh; border: none;" :src="iframePage"></iframe>--><keep-alive><component :is="currentComponent"></component></keep-alive>
</div>

导航

        markRaw:用于标记一个对象,使其永远不会被 Vue 的反应式系统转换。

import ContactListPage from '@/module/zec-instant-messaging/views/ContactListPage';
import MessagePage from '@/module/zec-instant-messaging/views/MessagePage';
import UserManagementPage from '@/module/zec-system-management/views/UserManagementPage';let iframePage = ref("/zecSystemManagement/DataScreen");let currentComponent = ref(null);
// 点击用户管理
const customerManagement = async() => {currentComponent.value = markRaw(UserManagementPage);// iframePage.value = "/zecSystemManagement/UserManagementPage";
};// 点击好友列表
const toContactListPage = async() => {currentComponent.value = markRaw(ContactListPage);// iframePage.value = "/zecInstantMessaging/ContactListPage";
};// 点击消息
const toMessagePage = async() => {currentComponent.value = markRaw(MessagePage);// iframePage.value = "/zecInstantMessaging/MessagePage";
};

        只需要换这两个地方。

展示

 

        这样就解决了 iframe 多页面切换导致资源刷新的问题,websocket 也不会一直重连浪费资源。

        如果有什么不妥或者更好的写法,也可以相互学习学习。

http://www.dtcms.com/wzjs/297543.html

相关文章:

  • 一级a做爰片免费无码网站爱链在线
  • 云南网站建设的步骤小程序如何推广运营
  • 建网站手机怎么做浏览器打开网站
  • 星沙网站建设公司爱站网关键词挖掘工具熊猫
  • 怎么做阿里巴巴国际网站市场营销案例分析
  • 网站数据怎么会丢失女教师遭网课入侵直播
  • opkg 安装wordpress优化seo公司哪家好
  • 福州网站制作工具深圳华强北新闻最新消息今天
  • 营销型网站源码下载杭州网络排名优化
  • 腾讯的网站建设用了多少钱企业seo网络营销
  • 做企业网站所要注意什么seo是什么专业的课程
  • 做网站建设销售员准备什么网店如何推广
  • 建设申请网站网络营销服务有哪些
  • 偃师网站建设广州最新新闻事件
  • 从零学php网站开发百度竞价推广课程
  • 腾讯风铃怎么做网站广告图片
  • 做php网站的话要学什么语言谷歌搜索引擎官网
  • 最新清远发布南昌seo优化
  • 网站开发推荐资料nba最新排名榜
  • 南昌网站建设公司价位武汉关键词排名工具
  • 如何做vip电影解析网站百度收录
  • 威客做的比较好的网站有哪些搜索引擎优化方法案例
  • 模板网站建设合同seo对网店推广的作用有哪些
  • 小型网站建设源码百度网址大全旧版本
  • 公司网站开发人员的的工资多少钱百度客服24小时人工服务在线咨询
  • 网站建设的客户优化软件seo排名
  • 任家房网站建设厦门网站外包
  • 东莞建设网站官网住房和城乡114外链
  • vs做网站出现显示bug怎么建个网站
  • 光谷做网站推广电话网站宣传