最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

关于瀑布流加载数据重复的问题

编程开发 4416浏览 0评论

瀑布流的展现方式比起翻页用户体验性更好,只是会存在数据重复的问题:瀑布流加载下一页的时候,如果刚好数据有更新,那么下一页前面的数据就会和上一页后面的数据重复,给用户的感觉就不好了。

下面分享下三种解决办法:

1、服务端数据缓存

一次性读取N页的数据缓存起来,而后N页内的数据都从缓存里读取,N页外的数据按正常分页获取。

这里的N值,建议设为10,可以根据自己站点的情况修改。

缺点:一次性读取N页的数据,第一次读取会比较慢,缓存起来也浪费些存储空间,不过这个问题比较小,毕竟现在的硬盘和内存都比较大,关键的还是N页以后的数据无法保证不重复。

2、客户端排除

客户端记录已经加载的数据,再次加载的时候过滤掉已有的数据。

缺点:出现重复的数据时,加载的数据不足,比如原先要加载20条,结果有2条重复,就只剩下18条。

3、可以增加排序参数的传递

在获取数据时,客户端传入最后一条数据的排序字段的数值,在获取数据时根据该值进行筛选。例如按照编号降序排列,最终的查询语句形如:

select * from table where id < $id order by id desc

这个方式在3种办法中操作是最简单的,也是最容易实现的。不过缺点就是适用面比较窄:只适合排序的字段值不会重复,并且不会被修改。

总结

关于3种方法,个人更加倾向第2种方法,能从根本上解决问题。出现重复的时候最多少一些数据,用户感觉不出来,如果重复比较多,可以考虑加载再加载下一页的数据。

转载请注明:快乐编程 » 关于瀑布流加载数据重复的问题

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址