基于游标的分页 - 如果 "before" 或 "after" 对象被删除怎么办?
Cursor based pagination - What if the "before" or "after" object get deleted?
下面是基于 Facebook 游标的分页示例
```
{
"data": [
... Endpoint data is here
],
"paging": {
"cursors": {
"after": "MTAxNTExOTQ1MjAwNzI5NDE=",
"before": "NDMyNzQyODI3OTQw"
},
"previous": "https://graph.facebook.com/me/albums?limit=25&before=NDMyNzQyODI3OTQw"
"next": "https://graph.facebook.com/me/albums?limit=25&after=MTAxNTExOTQ1MjAwNzI5NDE="
}
}
```
我想当收到这样的请求时,服务器会找到 "after" 对象并获取其创建时间,然后搜索项目 "later" 而不是该对象,对吗?
我的问题:"after" 和 "before" 是正常的对象 ID 吗?如果分页时这些对象被删除怎么办?
前后参数可以用base64解码
$ echo "MTAxNTExOTQ1MjAwNzI5NDE=" | base64 --decode
10151194520072941
这链接到 https://www.facebook.com/matthewjohnston4/media_set?set=a.10151194520072941.476776.825212940&type=1
$ echo "NDMyNzQyODI3OTQw" | base64 --decode
432742827940
这链接到 https://www.facebook.com/matthewjohnston4/media_set?set=a.432742827940.204642.825212940&type=1
如果您删除后对象,它仍会在该对象 之后获得下一个项目。
最简单的方法就是自己测试一下。
下面是基于 Facebook 游标的分页示例 ```
{
"data": [
... Endpoint data is here
],
"paging": {
"cursors": {
"after": "MTAxNTExOTQ1MjAwNzI5NDE=",
"before": "NDMyNzQyODI3OTQw"
},
"previous": "https://graph.facebook.com/me/albums?limit=25&before=NDMyNzQyODI3OTQw"
"next": "https://graph.facebook.com/me/albums?limit=25&after=MTAxNTExOTQ1MjAwNzI5NDE="
}
}
``` 我想当收到这样的请求时,服务器会找到 "after" 对象并获取其创建时间,然后搜索项目 "later" 而不是该对象,对吗?
我的问题:"after" 和 "before" 是正常的对象 ID 吗?如果分页时这些对象被删除怎么办?
前后参数可以用base64解码
$ echo "MTAxNTExOTQ1MjAwNzI5NDE=" | base64 --decode
10151194520072941
这链接到 https://www.facebook.com/matthewjohnston4/media_set?set=a.10151194520072941.476776.825212940&type=1
$ echo "NDMyNzQyODI3OTQw" | base64 --decode
432742827940
这链接到 https://www.facebook.com/matthewjohnston4/media_set?set=a.432742827940.204642.825212940&type=1
如果您删除后对象,它仍会在该对象 之后获得下一个项目。
最简单的方法就是自己测试一下。