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. WIX 安装部署教程(六) 为你收集的七个知识点

    前段时间整理5篇WIX(Windows Installer XML)的安装教程,但还不够完善,这里继续整理了七个知识点分享给大家.WIX最新版本3.8,点击下载 WIX安装部署(一)同MSBuild自 ...

  2. 使用ACE_Get_Opt解析命令行

    当我们用C++开发一些C++控制台小工具时,会需要一些用户输入的参数来决定程序如何工作和执行,而用户输入参数的方式大部分都是采用命令行参数的方式. 比如上一篇文章 玩转Windows服务系列--命令行 ...

  3. 关于大型网站技术演进的思考(十三)--网站静态化处理—CSI(5)

    讲完了SSI,ESI,下面就要讲讲CSI了 ,CSI是浏览器端的动静整合方案,当我文章发表后有朋友就问我,CSI技术是不是就是通过ajax来加载数据啊,我当时的回答只是说你的理解有点片面,那么到底什么 ...

  4. js中各种跨域问题实战小结(二)

    这里接上篇:js中各种跨域问题实战小结(一) 后面继续学习的过程中,对上面第一篇有稍作休整.下面继续第二部分: -->5.利用iframe和location.hash -->6.windo ...

  5. PosePlus的第一次突破

    动作问题一定要解决 PosePlus是解决这个问题的库 (之前叫做CleanData.Ani,后来我想过,之前的设计各个库之间的依赖太重了) 现在把他们之间的依赖剥开.   PosePlus解决几个问 ...

  6. Android多线程分析之一:使用Thread异步下载图像

    Android多线程分析之一:使用Thread异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处   打算整理一下对 Android F ...

  7. 可拖动的DIV续

    之前写过一篇可拖动的DIV讲如何实现可拖动的元素,最后提出了几点不足,这篇文章主要就是回答着三个问题 1. 浏览器兼容性 2. 边界检查 3. 拖动卡顿.失灵 先附上上次代码 <!DOCTYPE ...

  8. 三天学会HTML5 之第一天

    引言 HTML5 一直是非常热门的话题,因此此系列文章主要从一些基本功能开始讲起,逐步深入了解HTML5的新概念. 首先了解一些基本的术语和概念. SGML, HTML,XML三者之间的区别 Doc类 ...

  9. synchronized同步对象锁

    package com.system.util; import com.common.Constants; import com.util.Cache; /** * 创建同步对象锁 * * @auth ...

  10. lua的私有性(privacy)

    很多人认为私有性是面向对象语言的应有的一部分.每个对象的状态应该是这个对象自己的事情.在一些面向对象的语言中,比如C++和Java你可以控制对象成员变量或者成员方法是否私有.其他一些语言比如Small ...