如何在前端客户多次点击不同的内容时,只加载最后一次点击的请求?

2020-09-11 21:15:05 +08:00
 skyfollow

首先,题主不是前端,但是现在遇到了一个前端问题,希望能在 V2EX 得到一些方向上的指导。

问题背景:我们是一个类似于 IM 的工具,在后台每个操作人员,可以看到很多客户,可以与其进行聊天。

点击一个客户,此时,右侧会去加载聊天内容以及该客户的其他信息,大约有产生四个接口请求。

现在遇到的问题时:如果操作人员,连续快速的点击多个客户,比如连续点击十个客户,此时就会前端积累大量未完成的请求,显得后面的加载非常卡。

现在希望,如果发生了连续多次点击,当点击到后面一个客户时,之前未加载完毕的请求全部停止加载,只加载当前的客户所需要的请求,这样资源,便可以集中在最有意义的最后一次点击上。

谢谢!

3143 次点击
所在节点    程序员
24 条回复
oukichi
2020-09-12 15:49:47 +08:00
rxjs 完美解决
zhyt0520
2020-09-12 18:20:47 +08:00
是不是可以考虑从根源限制一下连续快速点击这个操作
点了一个之后,必须过一会才能点下一个
OHyn
2020-09-12 19:53:57 +08:00
防抖了解一下,延迟执行 xxxx 毫秒,这段时间内如过油相同操作,继续延迟。
jones2000
2020-09-12 21:46:54 +08:00
延迟处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706278

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX