用了挺长时间 v2 了一直没用过这个功能,今天点了一下感觉挺好奇怎么实现的。功能上来说应该是按过忽略以后就不会再出现在指定用户的浏览界面里,那是否意味着后端要永久储存每个用户忽略了哪些数据?假设 V2EX 有一百万个主题,是不是理论上每个用户都有存下百万级别的忽略列表的可能,而渲染的时候还要取出来筛选,这不会造成明显压力吗?想问一下是怎么实现的
1
crab 2021-06-17 23:24:16 +08:00
全渲染在 js 筛选
blocked = [] ignored_topics = [] |
2
LeeReamond OP @crab 好方案,但是我翻了翻 F12 的 cookies 和 localstorage 没找到类似的键值,这是存哪里的?
|
3
SingeeKing 2021-06-17 23:48:53 +08:00 via iPhone
@LeeReamond 看页面源码
|
5
LeeReamond OP @SingeeKing 看了,没有
|
6
3dwelcome 2021-06-18 00:25:35 +08:00
"那是否意味着后端要永久储存每个用户忽略了哪些数据?假设 V2EX 有一百万个主题,是不是理论上每个用户都有存下百万级别的忽略列表的可能"
这就和 google 搜索引擎原理一样,理论上一个关键词能搜出几百万条记录。实际上对用户可见的,也只有那些”热数据“,多翻几页后面就空了。 假设每个用户都存百万级别的忽略列表,这明显是伪需求。就算存也是一部分冷数据,对于终端每个用户,热数据里最多给筛选几百条的存储空间。 给全站用户一起建立个几万条热数据过滤池,估计也足够了。 |
7
Jooooooooo 2021-06-18 00:34:37 +08:00
首先你不能忽略几百万个主题
就像微博你不能关注几百万个人 (要不然时间流咋捞? 微信不能添加几百万个好友 (要不然朋友圈咋弄 |
8
LeeReamond OP @Jooooooooo 限制数量是一个简单粗暴的方案,我只是想知道 v2 怎么实现的,毕竟这种规模的业务也不算小了,挺有参考意义的
|
9
Elethom 2021-06-18 01:26:01 +08:00 via iPhone
这个的确是前端做的,看仔细一点。
|
10
xiaojj 2021-06-18 10:00:02 +08:00
前端实现的话,分页就不合理了
|
11
414 2021-06-18 10:58:21 +08:00
这个帖子应该会被很多人点忽略主题😅
|
12
LeeReamond OP @Elethom 还有一个问题,前端储存的话是不是表示放弃了多端同步的需求
|