-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
开启“网址AV号转换”后,切换视频分P时因刷新页面而存在性能问题 #1243
Comments
那推荐视频啥的是不是也是这个样子... |
或许可以把av号链接放在附加功能那里供复制, 这样不改动网址就可以避开这个性能问题 |
是的,而且因为推荐视频有额外参数,如果开启了“网址参数清理”也会造成刷新。不过毕竟推荐视频是切视频,有些内容本来就是需要刷新的,所以也不存在明显的额外开销,只是切分P会非常明显。
嗯,我觉得确实是个办法。加一个一键复制av号链接的按钮就行了。 |
我对js和ts没什么了解,想问一下关于“网址AV号转换”的代码是在 src/video/bvid-convert/bvid-convert.ts 是吗? 当时刚出bv号的时候知乎就有大佬破解了av号与bv号双向转换的算法:知乎 - mcfx的回答,可以无需网络请求根据bv号直接计算出av号。看上去上面的ts代码没有用到这个算法,我觉得可以考虑试试,直接计算不仅能计算任意视频的av号(包括已投稿但未通过审核的视频,此时视频已经分配了bv号但不能用api查询),而且也能免除网络请求本身造成的等待。 当时刚推出bv号的时候,我就在哔哩哔哩专栏找到了有人扒出来的api,我拿来写了个命令行转换脚本,但是就是略慢;在看到这个算法以后,我马上就把脚本改成直接计算了,方便快捷。 |
这个是的
这个我当时也看过, 不过他说只保证av号一定范围内正确我就没拿来用 |
那我觉得可以用它试试。这么大半年了我好像还没听说这个算法失效的例子。另外,我记得应该是只要打开了视频页面,avid和bvid都是已知的对吧,那可以在打开视频以后计算一遍,看计算结果和实际结果是否符合,如果真遇到不符合的情况可以弹个窗什么的提醒用户 |
我觉得需要的时候能复制到就行了, 没必要去检测计算页面上所有BV号(也挺耗性能), 所以还是移到附加功能里了 |
这么说来脚本提供的各种链接也该换成BV了 |
你指的是哪些脚本呢? |
本脚本啊 比如说自定义顶栏里点开的链接就都是av号的, 切P也会导致你说的性能问题 |
要是用户开了 |
我的想法是大多数情况因为“网址转换”而刷新页面是不太要紧的,只有切分P的情况比较特殊,所以需要区别对待 |
就是说切P啊, 顶栏点过来是av号, 下一P是BV号, 只要把av号都换成BV号就能一劳永逸, BV换av不知道以后还会不会出问题 |
好吧,我基本不用顶栏功能所以不太清楚……不过我觉得bv换av的话逻辑上是足以保证不会出问题的 |
考虑关闭此功能并同时使用这个脚本?:https://greasyfork.org/zh-CN/scripts/398535-bv2av |
没用啊切 P 还是会刷新整个页面。 |
确实,单个稿件切p确实仍会重新加载页面,如果只是正则替换BV到av号应该不需要刷新页面?可能可以考虑优化“av号替换”的实现方式。 |
上面其实回应过你这个建议了:#1243 (comment) |
刚刚又试验,发现一些奇怪的问题:
说到底,页面在什么情况下会重载我也没搞明白。 |
关于哪一项功能
网址AV号转换
问题描述
随便选择一个多P视频(例如av842759354),然后:
我的一个修复思路是,在开启“网址AV号转换”的时候,不知能否直接把右侧“视频选集”切换分P处指向的链接直接从BV号换成AV号,这样跳转后不会触发转换AV号的刷新页面,以避免这个严重的性能开销。
脚本版本
Stable v1.11.5, 内容包: df0a9d3
浏览器版本
Windows10 1909 64bit
Chromium 86.0.4240.198 64bit (从Wookyss下载的Installer版本)
错误信息
性能问题,无报错信息
附加截图
因为这个现象应该很容易复现,截图感觉也没啥用,就不截图了(
The text was updated successfully, but these errors were encountered: