前端小白一枚,从后端java过渡到前段,分享一下我处理问题的一些方案,有问题的话请大家多多指正,谢谢。
今天遇到一个问题,前端调用后台接口的时候,因为后台接口逻辑复杂,前端点开弹窗以后一直等待执行结束,这样用户体验感非常差,所以呢想到了一种方案,用户点击弹窗以后可以自由关闭,然后再次点击的时候提示它当前程序正在执行了,将不允许再次执行。
这里说一下我的主要逻辑,目前我有两种方案:
第一种:在用户点击弹窗的时候调用接口查看执行数据的步骤状态,返回给前端判断,如果执行中则给出提示。但是存在一个问题就是执行跟查看执行步骤状态的接口可能存在时间差,导致判断不生效。所以我想到了第二种方案
第二种:首先新增一个全局的map对象,然后在执行数据处理的时候将当前数据的唯一标识ID作为key,状态值作为value保存(此时value肯定是执行中),然后当执行结束以后更新这个map的value为已完成,这个时候用户再次点击执行的时候判断这个map中当前这个数据key的value是不是执行中即可,如果是执行中就可以给出提示“xxx正在执行中”。