背景
有些操作花费的时间会比较长,常见的有,批量操作,批量上传/下载等,进度条能很大程度的提升用户的体验。但是作为B-S架构的web程序该如何实现呢?
思路:先定义一个进度统计器,通过redis来缓存进度数据,web页面通过轮训的方式获得事件的进度。
代码实现,进度器设计
@Data
public class Progress {
/**
* 进度,1-100
*/
private Integer count;
/**
* 是否成功
*/
private Boolean success;
}
操作进度器
@RequestMapping("/")
@RestController
public class ProgressController {
@RequestMapping("/progress")
public Object progress() {
Progress progress = new Progress();
// fixme 查询
return progress;
}
}