Skip to content
This repository has been archived by the owner on Jan 18, 2025. It is now read-only.

[Bug]Bangumi页面死循环错误 #411

Open
MotooriKashin opened this issue Mar 4, 2023 · 0 comments
Open

[Bug]Bangumi页面死循环错误 #411

MotooriKashin opened this issue Mar 4, 2023 · 0 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@MotooriKashin
Copy link
Owner

Bangumi前端框架似乎正在转向next.js,而重写旧版页面动到了整个html节点,似乎会引发next.js框架死循环错误,典型错误如图:
image

报错代码:A client-side exception has occurred. see here for more info: ...
一般报错不过是导致代码退出,无伤大雅,甚至求之不得,因为重写旧版页面本就不希望被新版页面残余脚本破坏,能主动退出自是再好不过。问题是next.js的这个报错会死循环,而且不是一般的死循环,是使用了promise的死循环,这意味这浏览器不会发现这个死循环并爆堆栈溢出强制退出代码,而是会一直循环下去,不停报错,消耗大量硬件资源。用户只会忽然感觉卡顿,却不知道发生了什么。硬件占用飙升,控制台就难打开,console一直在飞速报错,打开了也很难定位错误。
好在此故障只是有小概率发生,而B站也一直遵循着让小部分人灰度测试的传统,推送到新版Bangumi前端框架的人就更少了。

但这实在是令人头疼的故障,因为本脚本注入时机本身就不可控,也很难发现并阻止此类错误。我能想到的办法就是:

  1. 想办法hook某个全局对象,定向爆破,强制next.js退出。但目前进展不容乐观→_→
  2. 延后或者提前脚本注入或重写页面时机,避免触发该报错。但脚本注入时机本身就受制于管理器,无法完全自主……
  3. 放弃用户脚本,完全转向浏览器扩展,使用高级API从根上解决问题。但……
  4. 求各位路过的高人赐个招💕💕💕

ps: 你说这B站前端,一届一届换了多少框架了,改过吗?换汤不换药啊,人家旧版页面也有理由说的,我带的是什么播放器,小电视,你这是什么播放器,你叫我带。B站页面现在什么水平,就那么点东西,”你喜欢的视频“什么都在slogan,它能当吗?当不了!没这个能力知道吗?再下去要抄Netflix了,抄完youtube抄Netflix,再抄twitch,接下来没人可抄了。——从另一方面来说,Bilibili也是借鉴西方先进经验最积极分子。。。哎哟,谢天谢地了,谢天谢地,你像这样界面本身就没有打好基础,你能保证再过两年出来个新的东西她不抄了。务实一点,我劝你们,我把自己的社区特色,网站的设计理念先搞懂。前端现在什么情况,就那么几个框架,Vue用得好好的,你把它去换了干什么,随便动一下就死循环,你倒告诉我怎么解释,脸都不要了。

@MotooriKashin MotooriKashin added bug Something isn't working help wanted Extra attention is needed labels Mar 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant