r*********n 发帖数: 32 | 1 往上拉就得最新的newsfeed,往下拉就得旧的。但这些内容不是按时间排序,是按
ranking排序。 |
P*******r 发帖数: 210 | 2 这个可以看一下twitter API developer's guide. 处理pagination. |
s****3 发帖数: 270 | 3 楼主有些不懂 重复是因为如果user 刷新了页面两次 所以requst 两次? 另外 "如果有
不同的
device,你必须返回重复的内容" 这个iiea 是为什么 ? 如果要frondend 去重 能不能
用304 的status 确认缓存?
【在 r*********n 的大作中提到】 : 往上拉就得最新的newsfeed,往下拉就得旧的。但这些内容不是按时间排序,是按 : ranking排序。
|
t******c 发帖数: 348 | 4 Thanks!
I just found this post https://dev.twitter.com/rest/public/timelines,
explained how to handle the pagination issue with new feed coming in real
time: add a max_id parameter to track the lowest id received.
In another case, to receive the latest feed without duplication, add a since
_id parameter to track the highest id received.
Hope it helps!
【在 P*******r 的大作中提到】 : 这个可以看一下twitter API developer's guide. 处理pagination.
|
m**********s 发帖数: 518 | |
s*****p 发帖数: 30 | 6 Twitter 这个 timeline是 按 时间 排序的。也就是说新来的 post 是在 timeline的
最前面。 但是 这个题目的要求是 timeline按照 ranking 排序的。 那么新来的
post 可能因为他们的 ranking score 被放在 timeline的 任意位置, 如果这样的话
, 怎么用 cursor?
since
【在 t******c 的大作中提到】 : Thanks! : I just found this post https://dev.twitter.com/rest/public/timelines, : explained how to handle the pagination issue with new feed coming in real : time: add a max_id parameter to track the lowest id received. : In another case, to receive the latest feed without duplication, add a since : _id parameter to track the highest id received. : Hope it helps!
|
t******c 发帖数: 348 | 7 如果不是按照timeline而是按照ranking,这样新的旧的混在一起,pagination没有意
义。
一个笨办法是把目前所有的feed id放在一个参数里面, 让server处理,保证返回没有
重复的
比如: https://www.fb.com/newsfeed?id:not-in=[1,2,3,5]
BTW:facebook 的graph api 用的参数是since, until:https://developers.
facebook.com/blog/post/478/
的
【在 s*****p 的大作中提到】 : Twitter 这个 timeline是 按 时间 排序的。也就是说新来的 post 是在 timeline的 : 最前面。 但是 这个题目的要求是 timeline按照 ranking 排序的。 那么新来的 : post 可能因为他们的 ranking score 被放在 timeline的 任意位置, 如果这样的话 : , 怎么用 cursor? : : since
|
G**O 发帖数: 147 | 8 我觉得还是能用cursor
cursor之前的timeline都被query过了,
cursor之后的timeline,全部fetch,然后按照rank 排序,返回rank高的几个并且在DB
里面mark成visited。。如果cursor恰好被mark了,就把cursor移动到下一个。
不过这样的问题在于,如果我是分布式的,我要把好几个replica都mark成visited,可
能会比较慢。
的
【在 s*****p 的大作中提到】 : Twitter 这个 timeline是 按 时间 排序的。也就是说新来的 post 是在 timeline的 : 最前面。 但是 这个题目的要求是 timeline按照 ranking 排序的。 那么新来的 : post 可能因为他们的 ranking score 被放在 timeline的 任意位置, 如果这样的话 : , 怎么用 cursor? : : since
|
m******e 发帖数: 82 | 9 题目的意思是你取第一页之后,取第二页之前,有一些新的feed产生,因为是按照rank
排序,所以新的feed可能会夹杂在第一页的数据之间。所以取第二页时应该考虑怎样才
能不取到重复数据,即第一页的若干数据。 |
p*****2 发帖数: 21240 | 10
往上拉就得最新的newsfeed,往下拉就得旧的。
但这些内容不是按时间排序,是按ranking排序。
感觉这两句话是矛盾的呀。
【在 r*********n 的大作中提到】 : 往上拉就得最新的newsfeed,往下拉就得旧的。但这些内容不是按时间排序,是按 : ranking排序。
|
m******e 发帖数: 82 | 11 简单来说就是实现按ranking排序,在某用户某一次浏览过程中做到一页一页取,不返
回重复数据。按ranking和按时间排序,最大的不同是前者会将新的feed排到旧的feed
之间。 |
i***h 发帖数: 12655 | 12 同感
一般需要当场和面官澄清定义
【在 p*****2 的大作中提到】 : : 往上拉就得最新的newsfeed,往下拉就得旧的。 : 但这些内容不是按时间排序,是按ranking排序。 : 感觉这两句话是矛盾的呀。
|
d****n 发帖数: 1637 | |
x**********l 发帖数: 27 | 14 感觉仍然可以用created_time解决啊。前端记录上一次request的time,
然后下一页的时候先filter(created_time <= time) ,这样就排除了新增加的数据。
然后再pagination, 根据ranking排序取第2页。这里需要提供created_after, page_
num
, limit 3个参数。和twitter api的做法有一点不样。 |