在分页查询的情况下,前端或者移动如何处理后端数据的实时更新。
高洛峰
高洛峰 2016-11-09 15:59:27
0
2
1000

类似于Twitter的这种网站的在浏览的过程中原来的数据已经增加了,如果是采取分页的方式获取数据,这里的数据源已经发生改变了,直接获取的方式应该数据获取重复的,但是并没有发生发生错误的。请问这样的后端api应该如何设计。比如segmentfault的分页,segmentfault如何分页如果有人回到了问题会直接排到前面,这个时候如果Android去获取第二页的数据这个时候和原来的数据已经不一样了,如何避免数据重复或者的缺失的问题。后端应该如何处理,移动端是否应该也做出过滤等处理。我并不做过这样的项目,所以可能思考的有问题。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (2)
代言

可以尝试前端使用PouchDB,服务器再部署一个CouchDB。
前端的PouchDB可以缓存数据,并和后端CouchDB保持实施更新,在后端数据库有数据更新时,PouchDB会回调, 官方的文档也写的挺好的,上手很容易。
当然也可以采取使用AJAX轮询的方案。

    三叔

    我知道的有两种方案处理分页数据更新的问题

    一般业务数据,论坛数据都采用这种方法

    第一种方案

    根据当前数据库中的数据,按一定规则排序(比如最后更新),按所需要的页面获取数据。这种方法不会去关注后台数据位置的变化,所以比较极端的情况下可能会出现你翻第二页却发现看到的内容没变,因为这段时间正好新增了页数这么多条数据……

    第二种方案

    获取数据的时候记录一个时间戳,每次取数据都把这个时间戳传到后台。后台按这个时间戳作为截止时间获取分页数据,返回出来。但是因为需要通知前端有新数据,所以还要按这个时间戳检索新数据条数,一并返回。前端按后端返回的数据展示,同时检查如果有新数据的话,进行提醒。

    这种方法不太适用于按数据更新排序的情况,适用于按新增时间排序的情况。一般订阅数据,或者几乎不改动的数据可以采用这种方法。


      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!