uniapp Mathjax渲染,引发接口请求点击延迟

uniapp 线上问题排查 小程序

某天线上客户反馈,页面点击进入另一个详情页面非常慢。

线上我排查浏览器,看接口返回时长,发现正常,然后去做性能,分析,发现有接近50dom 1.6秒的渲染。
然后这些dom都是公式渲染,我在mathjax3.2统一用的 promise,都在微队列中了

promise
然后我的点击接口都是也是一个promise,所以在等dom渲染队列完成后,才能执行我们的功能点击。

问题已经找到了promise的排队,dom 公式渲染执行时间太长了,如何解决呢?

我这边是运用视口外的公司不渲染,做一个延迟,滚动到视口后做加载。
具体操作如下。
修改mathjax 公式渲染组件
isInViewport(element) {
				const rect = element.getBoundingClientRect();
				return (
					rect.top >= 0 &&
					rect.left >= 0 &&
					rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
					rect.right <= (window.innerWidth || document.documentElement.clientWidth)
				);
			},

我这里有初始化处理,mydebounce 防抖,公式渲染我们做ai 交互,会有比较大的抖动,第一次全量渲染,在视口内,否则滑动渲染
在这里插入图片描述
监听变化实时渲染,我用了markdown
在这里插入图片描述

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8455163c18544818a3a453a561a2238b.png
已经延迟加载了
在这里插入图片描述
加载出来了
在这里插入图片描述
AI对话界面
在这里插入图片描述

接下来正常了,欢迎各位老师同学相互交流,指点问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值