大家平时页面翻页的时候是怎么处理loading这个状态的呢?

想请教大家平时页面翻页的时候是怎么处理ajax去拉取数据的这段时间的加载呢?是怎么提示用户正在加载数据呢?
目前我有两种思路,但是我都觉得不是很完美:
1.发送ajax的时候出现加载图标,ajax返回之加载图标消失,缺点就是有时候ajax太快导致加载的提示图标一闪而过,体验很不好。
2.超过一定时间后出现加载图标。ajax返回之后加载图标消失。好处就是避免了图标一闪而过的情况,缺点还是很难把握超过多少时间显示加载图标,假设我延迟300毫秒提示,但是ajax 400好眠就返回了,还是会产生一闪而过的情况。

阅读 6k
4 个回答

我是这么想的,比如一个list页面,你要翻页到第二页面去,是本页面交互,需要考虑到2点:

1.必须要一个反馈效果,也就是loading效果,表示我响应你的动作了,因为存在弱网络的情况,谁也无法保证能过100或者200ms就能返回数据。

2.不能影响用户的连续操作。就是说我反对,直接一个大大的loading弹层出来,遮住页面,啥事干不了。

所以我给你的建议是: 在页面给一个交互loading效果,但不影响用户操作,他还可以点击list的item来进行跳转或者其他操作之类的。

你说的一闪而过的效果,我觉得这么处理好点--- 就是有一个默认的动画最短时间(这个根据你的loading效果来设置)。

比如:发送ajax时候loading,并且记录一个当前的毫秒值,返回之后,用time判断下时间差,如果时间差小于默认时间值,继续执行动画要最小值为止,如果大于就隐藏。

不用loading

要努力的方向是怎么加快数据的读取和渲染,而不是怎么让loading更加友好,而且现在的人都知道,页面跳了但是数据没出来就是在加载

你的意思是本来100ms就已经读取完渲染完了为了让用户看到loading故意把这个时间加长?
what were you thinking?
loading设计上不是用来因为加载时间太长给用户看的吗?你这个需求跟loading有点不合啊

我现在也正在想这个问题,我现在的想法是,先设置一个最短的不需要loading的时间,比如说300ms,假如300ms内数据返回,那么不需要loading,如果300ms之后数据还没返回,那么可能是用户网络不好或者其他未知原因,那么loading开始显示,之后再判断loading消失的时间,假如从loading开始出现到数据返回不到100ms,那么延迟这个loading消失,直至有一个较完整的动画,假如100ms之后数据还没返回,那么loading一直显示至数据返回。
不过这有一个问题就是,刚开始loading出现会有延时,300ms之后才出现loading,可能会对体验产生影响;另外这一连串的逻辑实现起来也很麻烦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题