1.最简单的模式:
  设计:

    1.将页码值传给服务器,让服务器返回对应的页码数据
    2.数据缓存:只缓存第一页数据。
  好处:

    1.实现简单、无脑
  坏处:

    1.浪费流量,如果用户一直在等某个人发送消息的话。那么用户肯定会狂刷新。这个时候,我们重复加载了第一页。那么这种设计肯定是不合适的。因为他加载了很多无用的数据。
  适用场景:尽快的完成项目,做Demo给客户看的时候可以使用这种模式。
2.最无聊的设计:
  设计:

    1.刷新时:将用户的最后一条数据的id或者产生时间发送给服务器。然后让服务器返回给我们之后的数据。
    2.加载下一页:将用户显示页面中的最后一条数据传递给服务器,然后让服务器将对应的列表中包含的值得数据的id和标示值(可以是时间)发送给我们,我们挨条数据跟本地比对,把没有的或者标示不同的的id列表发送给服务器,然后服务器将我们请求的id的数据发送给我们。
    3.数据缓存:尽可能的缓存所有数据
  好处:

    1.节省流量,无论是当用户一直在刷新、还是查看已经看过的下一页数据。都可以将数据正确的返回给用户。
  坏处:

    1.冗余设计,只看这个逻辑就知道,代码量一定会很大。
    2.增加服务器压力,中间服务器根据用户信息判断的时候肯定会增加服务器的压力。也是肯定会的。如果用户数不是很大的时候。我们可以考虑一下。
    3.浪费手机存储空间,中间我们肯定会对用户的数据进行一定的缓存,这个缓存可能是有效的也可能是无效的。视情况而定。
  适用场景:适用人数不多,并且数据经常被查看的情况下。可以有效的节省流量。
3.折中的设计:
  设计:

    1.刷新时:将用户的最后一条数据的id或者产生时间发送给服务器。然后让服务器返回给我们之后的数据。
    2.加载下一页的时候,我们将对应的页码传递给服务器去请求对应的数据。
    3.只缓存第一页数据。
  好处:

    1.实现比较简单
    2.不会浪费太多的流量,针对于第一页数据进行数据优化(这个假设是比较关心最新的数据。像是SNS一样。昨天你看到你的朋友发的一条信息,你还有兴趣看第二遍吗?)
    3.加载之前的页面的时候,直接去请求数据。不多多余的缓存,节省手机客户端资源。
  坏处:

    1.如果用户经常去翻之前的数据,那么可能会比较浪费流量。
    适用场景:SNS社交一类的,看完第一遍的数据一般不会查看第二遍的情况。

即使是优秀的设计业不能应对与所有的情况,根据不同的情况制定不同的对策可以制作出优秀的软件。

更多相关文章http://c.jinhusns.com

Android流量控制——列表页面的更多相关文章

  1. EasyNVR H5无插件摄像机直播解决方案前端解析之:关于直播页面和视频列表页面切换的问题

    关于直播页面和视频列表页面切换 为了给用户更好的用户体验,并且更好的让用户快速简洁的了解实时的视频直播信息.一般多会分为列表展示和实时的视频直播展示. 表面上只是两个视图之间的随意切换,其实切换的两个 ...

  2. Flutter学习六之实现一个带筛选的列表页面

    上期实现了一个网络轮播图的效果,自定义了一个轮播图组件,继承自StatefulWidget,我们知道Flutter中并没有像Android中activity的概念.页面见的跳转是通过路由从一个全屏组件 ...

  3. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

  4. 从零开始编写自己的C#框架(22)——添加普通列表页面

    普通列表页面指的是上一章那种有层次感列表以外的正常列表页面,由于上一章已讲解了正常添加页面的相关操作了,所以部分相关的操作本章节就不再罗嗦重复一次了.大家可以试试先用本章内容中的一些简单介绍,自己使用 ...

  5. 基于CkEditor实现.net在线开发之路(7)列表页面开发动作介绍

    一个列表页面不止是查询,它也包含了很多业务上功能的实现,这些业务功能的实现的逻辑我称之为动作.如触发单击按钮删除数据,更改业务表数据,调用webService,调用WCF接口,弹出新窗体新增.修改.查 ...

  6. 基于CkEditor实现.net在线开发之路(5)列表页面开发

    这章主要讲解利用控件开发列表页面,我们先从最简单的列表页面开始讲解,这个列表只有一个列表展示.具体开发步骤请看下面动态图 由上动态图可以看出,开发一个简单的列表只有两步, 第一步:拖拽查询控件,设置好 ...

  7. Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据

    Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...

  8. Android权限列表permission说明

    网络上不乏android权限列表,但是很少有将列表和使用方法放在一起的,所以特此总结一下 需要在AndroidManifest.xml中定义相应的权限(以获取internet访问权限为例),如下: & ...

  9. android权限列表

    原文:[转]android权限列表 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略 ...

随机推荐

  1. 为自己搭建一个鹊桥 -- Native Page与Web View之间的JSBridge实现方式

    说起JSBridge,大家最熟悉的应该就是微信的WeixinJSBridge,通过它各个公众页面可以调用后台方法和微信进行交互,为用户提供相关功能.我们就来说说UWP下怎么样实现我们自己的JSBrid ...

  2. Java提高篇(三一)-----Stack

    在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过 ...

  3. 在tomcat下部署工程

    xx系统第一期工程完成,今天老大要我去部署系统,从来就没有在tomcat下部署过,一直都是在myeclipse下部署.启动.运行即可,所以这次遇到了几个问题,记录下来. tomcat启动 在安装tom ...

  4. 为什么一定要杀掉病毒?---帮一位老师解决MyDocument.exe优盘文件夹图标病毒问题

    最近一位大学老师给我抱怨了一个她遇到的烦恼,一直在纠结,生活都被打乱了,事情大概是这样的: 她的优盘里辛辛苦苦弄好备课文件,放在了优盘里,可是每次上课时,就是找不到文件.有时好多文件都被修改了,非常烦 ...

  5. IOS Animation-贝塞尔曲线与Layer简单篇(一)

    IOS Animation-贝塞尔曲线与Layer简单篇 swift篇 1.介绍 贝塞尔曲线: 贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一.它通过控制曲线上的四个点( ...

  6. jmx完整示例

    很早就开始去了解这个了,不过一直都是皮毛,基本概念明白,具体api几乎一无不知... 认真看了几篇文章,做了测试,终于有所了解 参考 入门级别: http://www.cnblogs.com/agou ...

  7. Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统

    今天大部分时间都在写业务代码,然后算是从无到有的配置了下spring与mybatis的集成. SpringMVC+Mybatis Web开发流程 配置数据源 在applicationContext.x ...

  8. Zabbix安装部署

    zabbix服务器端配置:(10.27.98.29服务器端) 1.安装lamp环境 yum -y install autoconf curl-devel gcc gcc-c++ httpd httpd ...

  9. angularjs decorator

    angularjs decorator https://docs.angularjs.org/guide/decorators decorator() $provide服务提供了在服务实例创建时对其进 ...

  10. Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

    前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾.因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布于都对标准Android发行版作为或多或少的 ...