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

长沙工程建设管理中心网站百度明星人气排行榜

长沙工程建设管理中心网站,百度明星人气排行榜,湖州外贸网站建设,网站排名不稳定怎么办[qiankun]-部署后线上问题微服务加载问题-现象1现象描述问题分析解决方案微服务加载问题-现象2现象描述问题分析微服务加载问题-现象3现象描述分析解决方案属于项目打包后,部署到服务器上,所遇到的部分问题 微服务加载问题-现象1 现象描述 项目部署实…

[qiankun]-部署后线上问题

  • 微服务加载问题-现象1
    • 现象描述
    • 问题分析
    • 解决方案
  • 微服务加载问题-现象2
    • 现象描述
    • 问题分析
  • 微服务加载问题-现象3
    • 现象描述
    • 分析
    • 解决方案

属于项目打包后,部署到服务器上,所遇到的部分问题

微服务加载问题-现象1

现象描述

项目部署实践中遇到了,登录系统后,初次点击路由进行微服务加载,页面无法加载的问题,但是刷新后正常微服务正常加载
路由状态:
所有微服务在一个微服务的路由页面统一展示
其它公共页面在其它路由中展示

问题分析

首先确定是否是因为,在注册微服务时,展示微服务的路由容器ID没有渲染的缘故,对于该问题一直存疑?!

因为页面在出现无法加载微服务页面问题后,直接刷新页面后微服务却能正常加载,那么应该不是容器ID的缘故

通过运行时的日志发现,在调用微服务的时候,路径地址没错,但是加载微服务的生命周期都没有实现,例如 beforeLoad,正常情况下应该执行该生命周期

    registerMicroApps(microApps, {beforeLoad: [app => {console.info(`${app.name}的beforeLoad阶段`)NProgress.start();return Promise.resolve();}],beforeMount: [app => {// console.log(`${app.name}的beforeMount阶段`)NProgress.inc();return Promise.resolve();}],afterMount: [app => {// console.log(`${app.name}的afterMount阶段`)NProgress.done();return Promise.resolve();}],beforeUnmount: [app => {// console.log(`${app.name}的beforeUnmount阶段`)return Promise.resolve();}],afterUnmount: [app => {// console.log(`${app.name}的afterUnmount阶段`)return Promise.resolve();}]});

解决方案

做出合理假设,是不是没有注册成功,也即注册时 microApps 为[],长度为0

做出测试,修改注册微服务的位置,在microApps赋值的位置之后进行 registerMicroApps ,然后发现页面正常加载了… 所以是因为某些原因registerMicroApps没有执行导致的!!!

当执行 registerMicroApps 方法的时候,microApps的参数container 并不是要求执行时必须展示出来的,有可能此时containerId还没有渲染出来,
但是这个不影响微服务的注册

微服务加载问题-现象2

现象描述

在解决以上问题后,也即在store文件中获取到microApps后立刻注册,发现虽然不会出现登录后初次点击路由进行微服务加载无法加载现象了,但是出现了新的问题,若是此时刷新页面将无法正常加载了

问题分析

根据上次的经验分析,是刷新后微服务的注册没有了,因为之前修改我们是在登录成功的时候进行数据的获取并注册微服务,虽然刷新后实现了数据的本地化,store中的数据仍然存在,但是并没有重新调用接口获取数据,注册的操作自然也就没有了
根据vue的生命周期onMounted初次渲染后执行,在该位置根据条件重新注册微服务registerMicroApps即可

上述两个问题一般在手动加载的时候是不会遇到的, 因为手动加载loadMicroApp()一般都是在微服务的路由页面上执行,每次微服务的路由加载的时候执行

微服务加载问题-现象3

现象描述

在排除了以上所有问题后,微服务加载过程中,有一个微服务页面总是无法正常挂载,但是在该路由页面直接刷新页面的时候又正常挂载了,而其它微服务都能在第一次点击的时候正常加载,经过对比分析发现是微服务的渲染函数中,这一行代码导致的,这一行代码被写成了:

app.mount(container ? "#app" : "#app");

分析

微服务挂载的时候是根据主服务传递的 container 进行挂载的,因为 container是指定的主服务的容器,而#app则是子服务单独运行的挂载容器,因为主服务在加载子服务的时候 container 是已经存在的,所以子服务挂载的位置应该是 container中包含的id为app的dom节点上,因为如果是多页签页面可能存在多个#app,所以一定要指定是 container 中的id为app的容器

解决方案

app.mount(container ? container.querySelector("#app") : "#app")
http://www.ds6.com.cn/news/14884.html

相关文章:

  • 网站建设空间是指什么软件中关村标准化协会
  • 专做美妆的网站成都高端企业网站建设
  • 合肥有哪些公司是做网站的百度网盘网页登录入口
  • 郑州做网站建设公司哪家好快速排序优化
  • 企业做网站排名seo关键词使用
  • 做网站用什么云服务器吗全网营销系统怎么样
  • 设计公司品牌网站举三个成功的新媒体营销案例
  • 网站首页做多大分辨率湖北网络推广seo
  • 日照网站开发建设北京seo优化排名
  • 网站建设中的财务预算搜索引擎推广渠道
  • 目前网站开发语言投稿平台
  • 做网站宣传图片重庆网站seo教程
  • 大学生个人网站制作最新实时新闻
  • 网站开发32位和64位广州seo托管
  • 男的怎么做直播网站今天的头条新闻
  • 专门做活动的网站建网站设计
  • 江苏建设人才考试网是啥网站seo网络培训机构
  • 百度安全网站检测网站案例分析
  • 请举例说明什么是网络营销南京百度seo公司
  • 东莞网站建设dgtenma百度搜索排行
  • 腾讯云学生怎么做网站的企业网站的搜索引擎推广与优化
  • 中海外交通建设有限公司网站网络营销策划书的结构是什么
  • 手机微网站制作系统浏览器打开网站
  • 网站建设与网页设计实训报告怎么弄属于自己的网站
  • 佛山中英文网站制作黄冈网站推广策略
  • 做网站如何收费免费发帖的网站
  • 专注新乡网站建设网络营销的作用和意义
  • 自己建设的网站靠谱吗如何在网上推广自己的产品
  • 做网站设计的公司有哪些免费引流人脉推广软件
  • 网站维护都要做什么深圳网站建设找哪家公司好