如何人为控制浏览器进入“加载中”状态,然后在某个时点放弃控制?

我们的Web App在某一时点会大量请求服务器,导致浏览器上提示加载的图标一直来回闪动:

加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->加载中->完成加载->

来来回回要有几十次,让人感觉很不爽。

我们提出一种可能的解决方案,就是人为做一个操作,比如一个方法startLoading,这时浏览器就会一直处在加载状态中,如图示:
图片描述

之后,我们可以用另一个方法,比如finishLoading告诉浏览器,我们结束了。之后你就按自己的方式工作吧。

请问,这个该怎么实现?
多谢

PS:合并请求之类的在我们这里都不是可行的解决方案,因为业务要求的特殊性,必须加载N多次,最多可能上百次。每次之间间隔是毫秒级的。

阅读 2.5k
4 个回答

试试客户端向服务器端一个特别的API发送请求,这个API收到请求后把它挂起来,然后客户端判断所有的其他请求都结束后,手动终止这个请求。。。

难道不可以Promise.all()吗?

一般不是最后一步的完成加载之后调用函数关闭这个么?我们公司的也有比较复杂的流程,在触发加载事件时,先执行显示这个加载效果的方法,再进行正常的业务操作,加载东西什么的,然后确认是最后一步了,再隐藏或删除加载效果。如果异步加载的话,就最后添加一个回调咯。

直接用ajax加载,浏览器不会有加载中的提示哦

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