首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

问一下远程数据抓取策略的有关问题

2013-03-26 
问一下远程数据抓取策略的问题问一下远程数据抓取策略的问题,类似于新浪微博刷新页面,上向上刷新和向下加

问一下远程数据抓取策略的问题
问一下远程数据抓取策略的问题,
类似于新浪微博刷新页面,上向上刷新和向下加载两个操作
服务器端数据库有数据:
30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1
手机客户端数据库有数据:9,8,7,6,5,4,3,2,1
现在手机启动,先取本地数据显示,这时显示的是:9,8,7,6,5,4,3,2,1
开启个异步任务去取服务器端的数据

我的想法是:
取当前显示的最大ID(9)发送给服务器端,服务器端查询大于此ID的最前10条记录(假如每次取10条记录)返回
这时取到的数据是:30,29,28,27,26,25,24,23,22,21
返回后,将记录写入本地数据库,并更新手机页面,
此时,本地数据库是:30,29,28,27,26,25,24,23,22,21,9,8,7,6,5,4,3,2,1
显示的也是30,29,28,27,26,25,24,23,22,21,9,8,7,6,5,4,3,2,1

当用户向下刷新时,怎么知道应该取本地的库还是取服务器上的数据?
现在服务器上的数据20,19,18,17,16,15,14,13,12,11,10就无法取到了。


例子上的数据量小,问题好解决,如果在有好几百的新数据时,怎么处理?
求一个合适的算法,可以轻松实现向上及向下刷新数据,谢谢!
[解决办法]
向上和向下刷新的具体含义是什么呢?
[解决办法]
不考虑本地存储,所有数据从服务器取。

简单的处理方法是:

发送ID(-1)表示取当前最新10条,即你所说的向上刷新。

发送ID(20)表示取比20小的10条数据,即你所说的向下刷新。


[解决办法]
向上和向下刷新的具体含义是什么呢?
[解决办法]
显示的肯定都是本地数据,按时间排列
请求时,提交参数以获取某某时间之前或某某时间之后的记录
下载成功后,把新增内容插进来就行了
[解决办法]
不清楚你的具体应用场景,单纯就 微博 来说,个人感觉本地存储当前浏览的10条就够了,
保留历史数据的意义我觉得很小~

一般很少有人对已经看过的消息还要重复再看。 为了应付这个小概率事件,将增加本地存储管理问题的复杂性。

言归正传, 关于如何判断在本地库还是从服务器取的问题。
由于你本地存储信息的不连续性,不能通过简单判断ID起始完成。

寻找 本地已经存储的ID数字串 与 现在要查看的ID数字串 之间相同ID(本版有两个顺序表删除相同元素的问题,你可以参考)。
找出没有的ID,向服务器发送请求(这里你还要求服务器能支持单条或者多条信息查询功能)。

ps:简单才是美~

热点排行