前端页面ajax请求过程中的【加载中】的问题?
场景:
用户点击某个按钮,js会通过ajax请求数据出来,在这个过程中,一般良好的用户体验是会出现一个【加载中】的文字或图片的提示,等待数据请求过来再隐藏提示,展示数据。
但,如果用户的网络环境或者后台服务器网络不差,这个【加载中】的提示刚弹出来,数据就请求完成了,这样的话页面就会~闪~一下,用户体验反而不那么友好了。
如果如果取消这个提示,二遇到用户的网络环境或者后台服务器网络不好的情况,页面空白一半天才出来数据,这个过程会让用户觉得页面没有处理请求,这样的体验也不好。
so,怎么破?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
设定一个“加载中”持续时间的最小值。
首先,根据经验得到一个不会出现“闪一下”的现象的最小值,例如500ms,记为
Tmin
。然后,在收到响应数据后,计算一下本次请求用的时间
t
。如果t >= Tmin
,则隐藏/关闭“加载中”;否则,过Tmin - t
时间后再隐藏/关闭。延时关闭遮罩层,但是这个延时不阻塞页面的逻辑处理与页面的展现。
点击了按钮后,可以先显示加载中,过一会再请求数据,但网慢了就不好了。麻烦一点,可以点击后就请求,然后判断请求时间,时间短的话,就延时几秒显示,否则直接显示。
把【加载中】的提示做成延迟一些,ajax超过多少时间未回调就显示【加载中】
延时600ms差不多
我记得当年是强行延时两秒再请求。。。。