[JS真好玩] 嘘!我改了掘金源代码!1行代码,让表格支持page_size切换,从每页10条变为20条!

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

掘金创作者的困惑

上篇文章,我们用1行代码,计算掘金创作者写的文章的「展现-阅读转化率」以及「点赞率」等,传送门:《掘金创作者必备: 用一行JS查看所有文章的转化率,让你知道什么标题才是好标题》

但是,有个问题,进入「创作者中心」-「内容数据」-「数据趋势」-「单篇分析」juejin.cn/creator/dat… 后,如果你比较勤奋,写了10篇以上的文章,那么这个表格只能展示10篇文章,因为表格限定:每页10条数据

不知是掘金的产品经理比较倔强,还是掘金的前端开发比较懒,(狗头保命)这个数据分析用的表格并不支持切换page_size(每页文章的数量)。

所以,用我上篇文章的方法,每次只能计算10篇文章的转化率,并不能一次性计算出所有文章的转化率。

这实在是太难受了!我已经写了将近20篇文章了,我希望把它们放在一起,统一分析数据!

其实对创作者而言,这种展示数据的表格还是非常重要的,因为可以帮助创作者分析,最好至少每页展示20条(但是这样就很长,会比较丑)。

但是现在,不用给掘金产品提建议了,因为我已经用1行代码帮掘金实现这个功能了!

解决方案

经过我HullQin坚持不懈的努力,终于找到了解决办法,并且只需要1行代码!

来吧,展示:1行代码!

_f=fetch,fetch=(u,i)=>u.includes('list_by_user')?_f(u,{...i,body:JSON.stringify({...JSON.parse(i.body),page_size:20})}):_f(u,i);
复制代码

使用方法

  1. 打开「创作者中心」-「内容数据」-「数据趋势」-「整体分析」
  2. F12打开浏览器的开发者工具,进入Console(调试)面板,复制粘贴上面的代码,并按回车键
  3. 【不要刷新浏览器】点击「单篇分析」

你会发现,这个「单篇分析」表格已经展示了至多20篇文章!(如果你文章不够20篇,看到的就是你所有文章了)

image.png

求赞求收藏,我为什么求赞求收藏?

掘金将来可能会改版,这个方法可能会失效。不建议你直接复制走代码,建议你收藏文章,再顺手点个赞,超级感谢!因为如果掘金改版了,我会同步修改文章的代码,保证它永远可用!你每次可以来这里找到最新的可用的代码!

原理

通过抓包发现,「单篇分析」的数据来自于叫做list_by_user的接口,它的request body有个参数,叫做page_size,只要我们把这个参数改大点,那么就会请求得到更多数据啦,然后前端就会渲染出这些数据。

经过试验,后端对page_size有限制,最大是20,所以我们把page_size改成20就可以了。

怎么修改fetch时的request body呢?

幸运的是,JS中函数也是「一等公民」,我们直接把全局的window.fetch函数改了就好,用旧的window.fetch封装出一个新的fetch函数,并赋值给window.fetch。这种模式也叫「装饰器模式」。

在新的fetch函数中,判断如果请求是list_by_user,就修改它的body参数中的page_size,改成20,就可以啦。

当然还有其它方法,例如配置代理修改请求包,但是如果你之前没配过代理,就需要安装代理软件、信任证书等操作,不如执行1行JS来得快~以后我也会教你代理方法的,功能更强大,也更方便,哈哈哈,快快关注我,现在关注我就是老粉啦。

注意事项

毕竟我本人之前也是字节的前端开发,出于责任感,提示下大家:禁止发送恶意请求给掘金噢,禁止压测噢,禁止利用掘金漏洞干坏事噢,不然你的账号可能会被封禁。

写在最后

这是我新的专栏:《JS真好玩》,将教你用JS实现一些有趣的东西。JS可以直接在浏览器运行,不需要配运行环境,所以不管你是后端还是前端、不管你会不会写代码,都可以很方便的跟我学习用JS做好玩儿的事情。欢迎关注噢~

我是HullQin,独立开发了联机桌游合集,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋、UNO等游戏,绝不收费,绝无广告,点这就能开始玩。喜欢可以关注我噢~我有空了会分享做游戏的相关技术,会在这2个专栏里分享:《教你做小游戏》《极致用户体验》

猜你喜欢

转载自juejin.im/post/7106899254093807646