客户端更新定义数据(Definition)的方案比较

一、问题/需求

场景:

客户端展示来自服务端的数据;

数据项(Item)有很多,并且可能增、减;

每个数据项的定义(Definition)也可能变化

数据(Data)的展示将依据它的定义

分析:

尽管定义可能发生变化,但频度是比较低的,并不需要每次均从服务器端获取。而具体的数据则是变 化的,需要每次获取。

当客户端为移动终端(如手机)时,响应时间是个重要指标

减少Definition的获取,将有效提升客户端的响应时间

二、方案

有3个方案:

1) 即时(JIT, Just In Time)  更新

每次申请Data时,同 时(JIT)传过去Define的LastUpdateTime.

服务端判断有新的,则与数据一起返回。

2) 按需 (OnDemand)更新:

每次需要此数据时,判断IsNull。若为空,则申请更新

3) 初始化 (Initiation)更新:第一次运行时全部更新

- 建立标志Flag_Initiated = False.

- 若FALSE, 则 做个初始化动作,全部更新;完成后设为True

注:2,3均需同时运行【独立更新Definition】 功能 -- 后台线程在空闲时取。

三、方案比较

----------------------

文案2 与 方案3 比,其实是一种延迟策略,只取所需。很多场景下,Definition集合很大,用户不 会每条路径都走到。方案3(初始化)不仅有大量浪费,而且初次占用时间可能过长,导致用户体验较差 。

方案2与3 存在一定的Definition过时风险

方案1的缺点是:2个逻辑混在一起,复杂度提高一点点;同时,大部分情况下是无用功(返回空)。

方案1的优点是:正确性可以很好地保障。

另,方案1与2,均可以作合并申请的优化:将Definition的申请与Data的申请,合并到同一个请求中 ,节约一次网络交互。这可以避免终端响应时间过长,对于移动互联网特别有价值。

四、结语

你会选择哪个?或者有更好的方案,也请建议。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/basis/

时间: 2024-12-24 02:29:53

客户端更新定义数据(Definition)的方案比较的相关文章

新浪微博客户端更新渠道数据 360占28%居首位

中介交易 SEO诊断 淘宝客 云主机 技术大厅 原标题:新浪微博客户端更新渠道数据 360占28%居国内首位 8月2日消息,近日新浪微博客户端发布了3.6.0版本客户端渠道下载数据,排名前两位的分别是AppStore和360手机助手,而昔日以iOS为主分发渠道的91手机助手仅占3%左右. 新浪微博客户端3.6.0正式版于7月22日发布.截至7月29日,一周内下载总量已突破2000万,创下了历次版本升级中更新最快的纪录.其中Android版本下载量达到1200万,iOS版本下载量超过800万. 新

新版微博客户端更新中各手机品牌占比

新浪微博客户端3.6.0正式版于7月22日发布.截至7月29日,一周内下载总量已突破2000万,创下了历次版本升级中更新最快的纪录.其中Android版本下载量达到1200万,iOS版本下载量超过800万. 新版客户端更新渠道数据 值得一提的是,Android版新浪微博客户端与360手机助手进行了独家首发合作,通过360手机助手进行更新的用户在4天内达到了300多万,单日最高下载量高达90万人次. 新版微博客户端更新中各手机品牌占比 在所有的更新用户中,用户所使用的手机型号前五名依次为iPhon

数据库服务器-当某一客户端更新数据到服务器后,其他客户端如何自动更新

问题描述 当某一客户端更新数据到服务器后,其他客户端如何自动更新 请问当某一客户端更新数据到服务器后,其他客户端如何自动更新?谢谢 解决方案 不知道你用的什么编程语言,你需要的是一种可以服务器主动向客户端发信息的机制,比如socket或者.net的 wcf 双工通讯.或者signalr 解决方案二: Web实时更新客户端数据 解决方案三: 服务器给所有客户端发送更新数据 解决方案四: 如果客户端一直在跟服务器通讯的话,就服务器直接推送,如果客户端是隔一段时间报告状态的话,就,就在报告状态是推送

使用delphi 开发多层应用(八)客户端更新数据到kbmMW服务器

   上次写了从kbmMW服务器给客户端返回数据,我们实现了数据的查询功能,但是当客户端对数据进行了增加.更新.删除的操作, 我们必须把这些操作返回到服务器端,并对后台数据库进行更新.kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到 服务器的例子.    还是在昨天的基础上,我们要把客户端的信息更新到服务器上,首先需要在服务器端的Tkbmqueryservice 设置允许客户端更新 的权限,如图 即把allowclient 开头的几个属性都设为True; 同时为了保证客户端可以插入数

MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云

一,背景与概述     复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题.     MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的.在周边系统众多,业务场景复杂,海量数据存储和计算调度都是一个难题的情况下,需要保证大数据系统在灾难发生时能够尽快切换到备用系统服务,最小限度影响客户使用.     容灾系统及方案的建设有很多种方式,如同城双活,异地多活,冷备容灾等.MaxCompute大数据的容灾方案是在多年集团内部断

循环处理文件,并更新Web数据

问题描述 jsp文件中,有如下java代码RealNameSearch_Serviceservice=newRealNameSearch_Service(url,qname);Stringresult=service.getRealNameSearchSOAP().search(starttime,finishtime,number_input,phonenum,addr,ip,port,select);其中search()是一个WebService接口,返回一个字符串是一系列文件的第一个文件名

开始VS 2012 中LightSwitch系列的第2部分:感受关爱——定义数据关系

[原文发表地址]  Beginning LightSwitch in VS 2012 Part 2: Feel the Love - Defining Data Relationships [原文发表时间]  2012-08-15 18:01 说明:本文是将之前所编的Visual Studio LightSwitch 2011 博文更新到Visual Studio 2012 中的LightSwitch, 若要查看原文版本,请点击这里. 欢迎来到开始Visual Studio 2012中Light

100分救解决方案,如何通过网络更新大数据文件(300MB左右)?不够分追加

问题描述 希望大家有什么想法就发出来.不论成功与否, 解决方案 解决方案二:如何通过网络更新大数据文件?有那么大的更新吗??第一次见到长见识了`解决方案三:偶我关注中....解决方案四:就是GIS里的那地图.GST文件当发布新的地图数据就要更新到客户那去解决方案五:mark解决方案六:关注,有类似需求解决方案七:顶上去!解决方案八:我都好想知道为什么楼主有这个需要.解决方案九:什么意思解决方案十:你只是更新其中一部分吧!不会全部更新吧!解决方案十一:是BS还是CS呢?解决方案十二:CS解决方案十

详解JSON1:使用TSQL查询数据和更新JSON数据_json

JSON是一个非常流行的,用于数据交换的数据格式,主要用于Web和移动应用程序中.JSON 使用键/值对(Key:Value pair)存储数据,并且表示嵌套键值对和数组两种复杂数据类型,仅仅使用逗号(引用Key)和中括号(引用数组元素),就能路由到指定的属性或成员,使用简单,功能强大.在SQL Server 2016版本中支持JSON格式,使用Unicode字符类型表示JSON数据,并能对JSON数据进行验证,查询和修改.推荐一款JSON验证和格式化的工具:json formatter. 一,