记录一下这几天困扰了好久的bug。。

本文记录了一次在开发Electron应用时遇到的主题切换SVG缓存bug。在长时间使用后,切换主题时SVG内容会出现缓存错误,导致部分SVG无法正常加载。通过使用Redux管理和懒加载,问题变得复杂。最终发现是组件卸载时的请求被意外终止,导致数据获取不完整。禁用组件卸载时的请求终止解决了这个问题。
摘要由CSDN通过智能技术生成

最近做的electron应用,有缓存的功能。
但是长时间使用下来有个bug一直存在,就是切换主题的时候,上一个主题里面的svg内容会出现缓存一半,从而下次切到这个主题的时候,这个写了一半的会加载不出来。
就是这个情况

ok稳定版发布好了我要开始优化了。

棘手啊,这他妈怎么弄,来来来不写完不准切换主题。

redux,各种记录要加载的数据,和已经写完的数据。毕竟加了懒加载,更加糟心了。
好的搞定了,录屏给产品小姐姐看。

小姐姐说这样用户体验不好,切换主题是轻量化的动作,如果强行要他等待,会被喷的。

好的那想别的办法。

既然是主进程切换影响的,来来来子进程开起来。

然后fork子进程写入数据。看看进程管理页,写入的时候炸出一大堆子进程。
我kill.. 再kill…

握草,为什么切换主题还是会写了一半???
不应该啊,没报错啊,http end了之后才会执行写入,进入子进程的啊??
传递数据传了一半?管道传输数据问题?

这他妈不是指针指向数据么?还会传一半??

行那我把请求也放到子进程里面。

request移动移动。。

写着写着,

咦,componentWillUnmount里面怎么有个request??
谁藏的??

      componentWillUnmount() {
        this._muouted = false;
        this.request.forEach((req) => {
            req.abort();
        });
        if (this.scrollWrap) this.scrollWrap.removeEventListener('scroll', this.scroll, false);
        this.scrollWrap = null;
  }

req.abort()???

握草,查文档。。
这里写图片描述

所以是切的时候,请求被终止了,接下来的数据获取不到了,所以不完整了。。

你大爷。。。

弄了好几天,禁了这一行就好了。。

被强制结束了为什么不报错啊喂!!!!!

o(・౪・´o ≡ ò౪ó))—̳͟͞͞o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值