xh321 / LiteLoaderQQNT-Background-Plugin

LiteLoaderQQNT 插件 - QQNT自动轮换背景图
MIT License
78 stars 4 forks source link

[Bug] 切换背景时闪屏 #2

Closed festoney8 closed 1 year ago

festoney8 commented 1 year ago

现象:切换背景时背景闪动

设置间隔10s切换背景测试,Log如下:

renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:04 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:14 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:14 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:24 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:24 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:34 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:34 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:44 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:44 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:54 GMT+0800 (中国标准时间)
renderer.js:0 [Background] 更新背景 Tue Jun 20 2023 16:00:54 GMT+0800 (中国标准时间)

很明显reloadBg函数存在短时间内重复调用,猜测原因是定时器时间过短引起的抖动 https://github.com/xh321/BetterQQNT-Background-Plugin/blob/76f1356a8b4b4ef33ef7265f7017d3d600f45a2d/renderer.js#L130

定时改为1000后现象消失

xh321 commented 1 year ago

这个我知道原因了,因为ntqq是会先加载一个空白页再跳转主界面的,插件onLoad的时候不一定就在主界面,所以需要一个定时器100ms检测一次是不是在主页,如果是,则清除定时器并设置背景更新定时器。估计这里是重复设置了2个背景更新定时器导致的。 我加一个变量判断就解决了,目前不会重复更新,等下就push。

xh321 commented 1 year ago

Snipaste_2023-06-21_14-27-50 可以看到有14*100ms的空白页,随后才进入主页