Bilibili 旧播放页

恢复Bilibili旧版页面,为了那些念旧的人。

< 脚本Bilibili 旧播放页的反馈

提问/评论

§
发表于:2020-01-04
编辑于:2020-01-04

新版(2.2.0)脚本打开av播放页极其慢(并且有一半的几率无法正常加载播放器)

@"Motoori Kashin" RT,和之前2.1.3 版本对比了下,2.1.3版本打开av播放页基本1s内能加载完毕(先打开av播放页,然后主界面立刻弹出,播放器那边会出现短暂大约0.5s左右灰色区域,然后播放器立刻就出来了) 然而2.2.0版本大概要3-5s才能加载出来,打开av播放页首先主框架都要花1-2s才能加载出来,然后还要等1-2s播放器才能加载出来.

§
发表于:2020-01-04
编辑于:2020-01-04

PS:2.2.0版本的av播放页第一次无法正常加载播放器可能性及其大,打开了4个视频有2个无法正常加载(如图) 加载不出来的界面

另外,打开视频加载播放器极其慢的问题只出现在第一次打开av播放页中,如果在同一个标签页反复刷新就不会出现这种情况了。

§
发表于:2020-01-04
编辑于:2020-01-04

我录了一个视频来对比新旧脚本。第一次打开播放页用的是老版本脚本,第二次用的是新版本脚本,您可以看看这个录屏

§
发表于:2020-01-04
编辑于:2020-01-04

PS2:console里没有报错,network里看上去也没啥特别异常的东西,就不贴图了 加载不出来的时候还是有报错的

把所有错误内容复制过来如下

jquery1.7.2.min.js:4 GET https://www.bilibili.com/video/undefined 404 (Not Found)
get @ jquery1.7.2.min.js:4
css @ jquery1.7.2.min.js:4
(anonymous) @ jquery1.7.2.min.js:4
access @ jquery1.7.2.min.js:2
f.fn.(anonymous function) @ jquery1.7.2.min.js:4
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Kt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Promise.then (async)
Vt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Zt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
t.$nextTick @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
judgeShowSpreadBtn @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
handler @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
Re.run @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Pe @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Kt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Promise.then (async)
Vt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Zt @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
Re.update @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
ft.notify @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
set @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:7
setVideoData @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
f._withCommit @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
f.commit @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
commit @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
Promise.then (async)
loadVideoData @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
f.dispatch @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
dispatch @ 1.video.406cee7878545872b8dfbe73071d665dfb287c67.js:13
asyncData @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
Ha @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
setTimeout (async)
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
n @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
n @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
i @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
(anonymous) @ video.406cee7878545872b8dfbe73071d665dfb287c67.js:1
§
发表于:2020-01-04

@redapple0204 嗯,感谢反馈,虽然我这里没遇见过av页启动失败的情况,但速度慢了大概是真的,已回滚2.1.3版本av页逻辑,不知道效果任何。

§
发表于:2020-01-04
编辑于:2020-01-04

@"Motoori Kashin" 谢谢,现在看上去速度提升了不少 不过又引入了一个小小的新问题:现在2.2.1版本似乎先把播放器加载出来了,标题要过一会才能出来,这就导致了有较小概率视频加载出来但是标题无法加载或者是标题错位的尴尬局面,不知道您是刻意这样做还是存在一些其他的问题?

§
发表于:2020-01-05

@redapple0204 所以还是2.1.3版框架先出来,播放器位置先空着好些是吧

§
发表于:2020-01-05

@"Motoori Kashin" 在我这边看上去是这样的,不过就不知道别的测试平台如何了

§
发表于:2020-01-05
编辑于:2020-01-05

@redapple0204 其实2.2.1和2.1.3的架构基本上完全相同,对比一下也可以看出来,唯一的区别大概就是2.2.1版本使用的填充框架内容的脚本更新一些,大概是2019年1月4日,而2.1.3版本的是2018年5月2日。稍后我会把av页完全滚回2.1.3版。

§
发表于:2020-01-05
编辑于:2020-01-05

@"Motoori Kashin" 我就说为什么现在新版本打开av播放页右边会出现试用新版的按钮,原来是较新版框架! 不过话说回来,我记得19年使用旧版播放页的时候也不是先加载播放器来着,这就很奇怪了

§
发表于:2020-01-05

@redapple0204 找旧版bangumi页备份时找到的av页的更新副本,喜新厌旧心理在作怪吧没多想就直接用了

§
发表于:2020-01-05

播放器先于网页渲染的原因是,播放器的框架其实是外置于网页主框架的,据某位前辈的说法,如果要让网页自动填充视频、up等信息,网页主框架的下级是不能有任何东西的,包括播放器框架,这就很矛盾,没有播放器框架就无法加载播放器,而播放器其实才是最重要的东西。而将播放器框架外置于网页主框架,他将和网页主框架同步渲染,而且还比主框架渲染更快,等网页渲染完成它就会自动跑回网页主框架里去(这也是播放器明明已经加载出视频了还会重新闪一下小电视的原因),这就很神奇。旧版2.1.3版本可能播放器启动较慢所以与网页主框架渲染过程的撕裂感不那么明显,2.2.1版感觉播放器渲染明显更快了,所以二者之间的不和谐感就很明显。

§
发表于:2020-01-05
编辑于:2020-01-05

@"Motoori Kashin" 说道: 而将播放器框架外置于网页主框架,他将和网页主框架同步渲染,而且还比主框架渲染更快,等网页渲染完成它就会自动跑回网页主框架里去(这也是播放器明明已经加载出视频了还会重新闪一下小电视的原因),这就很神奇。

我在想能不能在播放器加载之前设置一个几十上百毫秒的延时,以便让框架先加载出来,或者是判断框架是否已经加载完成了,再来加载播放器,这样子可能撕裂感就会好一点?

§
发表于:2020-01-05

@Motoori Kashin 这一点是办不到的,一来渲染全部是自动完成的,二来主框架渲染其实是在播放器校验之后才开始的,播放器校验不通过,主框架是不会渲染的,就会出现播放器载入失败时经常看到的只剩版头和版底的情况。也就是说播放器框架必须和主框架同步渲染。原生网页没有这个问题是因为原生网页发给我们浏览器的时候,主框架其实已经在后端渲染好大半并已经存在网页结构中了,不像我们要重新渲染整个主框架,所以不会出现播放器先渲染好的情况。而我们也不可能为每个网页提前渲染好主框架,因为至少以我的能力是无法先获取那些后端数据(视频信息、up主信息)的,也不敢说由用户脚本代为一点一点生成那些东西会不会反而有更高的延迟。

发表回复

登录以发表回复。