java - 移动端接口的设计问题

查看:85
本文介绍了java - 移动端接口的设计问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

现有学生实体类 Student

public class Student {
    private int no;
    private String name;
    private int score;
}

需要为移动端提供数据查看学生成绩,数据源未使用数据库仅使用Java集合,若Server的数据源为List<Student>,内容如下:

0 张三 58
1 李四 42
2 王五 23

假设移动端每次请求只显示两条数据,则首次显示

0 张三 58
1 李四 42

移动端下拉页面,请求下一页数据,并将no=1发回给Server,此时移动端就多了一条数据,变为:

0 张三 58
1 李四 42
2 王五 23 --下拉后得到的新数据

若数据源固定不变这样是没有问题的,但实际情况是学生的信息会随时变化,即可能在移动端下拉请求下一页之前"1 李四 42"这条数据就没有了,此时再将no=1发回给Server会产生各种各样的问题,例如:同一条数据显示两次、有的未被显示等问题,有什么方法在不使用数据库的情况下按这种方式为移动端提供列表数据呢?想不通哇=。=

解决方案

楼上的难道没做过移动端分页嘛??移动端分页涉及到有变化的数据肯定不是按page=1这种方式来的,不然要重复或漏掉,(漏掉还好,重复客户端一下就发现了)
通用解决方案是这样的:
首先你肯定有个排序呗,比如说按时间,按分数等,客户端要下一页只需要传它当前页的最后一条记录的标识符就ok了,服务器拿到这个标识符再找后面的数据给它。
例子:
假设server端数据是1,2,3,4,5,6,7,8 返给client数据是1,2,3,这时需要3后面的数据,就把3传回server,server拿到3再按照约定逻辑找到比3大的是4,5,6给client,这样即使新增或删除都不会有重复问题
以前我们做瀑布流图片展示就是这样的,另外FB,instagram的api很多都是这样设计的

这篇关于java - 移动端接口的设计问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆