BLTH icon indicating copy to clipboard operation
BLTH copied to clipboard

与第三方脚本冲突/网络延迟/浏览器性能问题导致无法显示控制面板

Open Mishasama opened this issue 1 year ago • 2 comments

描述bug

如题 冲突脚本:

  1. https://greasyfork.org/zh-CN/scripts/453967
  2. https://github.com/lzghzr/TampermonkeyJS/raw/master/BiLiveNoVIP/

当网络较慢,或者浏览器扩展较多或在功能上会影响网页元素的载入速度时。

重现bug

  • 同时与任意一个脚本组合使用即可重现(净化脚本须打开屏蔽轮播功能)
  • 使用慢速网络(如 64 KB/s)
  • 使用大量影响浏览器性能的扩展

预期行为

延长等待时间,或在多个阶段(start、end、idle)增加重试,提升发生载入缓慢时的兼容性。

截图

image

运行日志

image

操作系统

WIN10 21H2

浏览器

Chrome 126.0.6478.127

用户脚本管理器

Tampermonkey v5.2.0

脚本版本号

7.1.4

网络情况

一般

其他浏览器拓展/用户脚本

Bilibili直播自动追帧 bilibili直播净化 Grammarly

其他

https://github.com/lzghzr/TampermonkeyJS/issues/56#issuecomment-2195271312

Mishasama avatar Jun 27 '24 18:06 Mishasama

image 将运行时期设置为idle可缓解症状,避免问题100%复现。

Mishasama avatar Jun 27 '24 20:06 Mishasama

我估计是因为BLTH hook了xmlHttpRequest和fetch。而且运行时期太晚hook就没用了,所以脚本不得不在document-start阶段运行。之后会想想办法。

andywang425 avatar Jun 29 '24 07:06 andywang425

现在还有个问题,在未开播直播间也不显示面板按钮,但是控制台有运行日志的

u2shana avatar Jul 03 '24 07:07 u2shana

脚本不得不在document-start阶段运行。

也许可以考虑把一些不必要start的功能分开?避免整个脚本都失效。

现在还有个问题,在未开播直播间也不显示面板按钮,但是控制台有运行日志的

image 在龟速网络下会接近100%复现。建议为此功能增加轮询重试。

Mishasama avatar Jul 03 '24 15:07 Mishasama

也许可以考虑把一些不必要start的功能分开?避免整个脚本都失效。

再做一个脚本?这还是算了吧,真没那么多精力。

现在还有个问题,在未开播直播间也不显示面板按钮,但是控制台有运行日志的 在龟速网络下会接近100%复现。建议为此功能增加轮询重试。

其实已经有轮询重试了,还报错大概是因为是超时时间太短了(3秒),之后我可以调整一下参数,或者用MutationObserver监听的方式来取代轮询。

andywang425 avatar Jul 13 '24 13:07 andywang425

再做一个脚本?这还是算了吧,真没那么多精力。

当然不是……只是将一些无须start的功能加个等待,以达到部分document-idle的效果。这样也许还能提高性能表现。

已经有轮询重试

那不可能啊……只要页面完全加载完毕了,你再次轮询的话就不应该会有问题。但事实上页面加载完了它也没有继续尝试了,在控制台也只看到一条超时报错,并没有轮询的迹象。

Mishasama avatar Jul 14 '24 06:07 Mishasama

当然不是……只是将一些无须start的功能加个等待,以达到部分document-idle的效果。这样也许还能提高性能表现。

懂了。脚本现在内部有一套模块的运行时机管理机制,每个模块有自己的运行时机,模块会等到自己的运行时机再运行。要提高和别的脚本的兼容性的话我觉得还是得在hook方面下手,尽量减少副作用。

那不可能啊……只要页面完全加载完毕了,你再次轮询的话就不应该会有问题。但事实上页面加载完了它也没有继续尝试了,在控制台也只看到一条超时报错,并没有轮询的迹象。

看控制台确实是看不出来的,我估计还是超时时间太短。下个版本中我用监听取代了轮询,超时时间延长到了10秒,到时候你再试试。

andywang425 avatar Jul 14 '24 12:07 andywang425

刚刚更新了7.1.5

andywang425 avatar Jul 14 '24 15:07 andywang425

情况好点了,但是偶尔还是有这种情况。(B站的廉租CDN问题多多) image 🙂

但是 Chrome 在 PB 的干扰下还是稳定的全模块出错

image

🙃

Mishasama avatar Jul 14 '24 18:07 Mishasama