接口防抖
sz-admin
提供了接口防抖功能,以优化用户体验。
配置指南
以下是如何在配置文件中启用和设置接口防抖的示例:
yaml
sz:
debounce:
# 启用防抖功能
enabled: true
# 设置全局防抖时间(单位:毫秒,默认为1000ms)
global-lock-time: 500
# 配置是否忽略GET请求的防抖
ignore-get-method: true
使用场景
1. 自定义特定接口的防抖时间
对于需要特别处理的接口,可以自定义其防抖时间。以下是Java代码示例:
java
public class xxController {
...
@Debounce(time = 2000) // 为该接口设置2000毫秒的防抖时间
public ApiResult create(@RequestBody xxDTO dto) {
...
return ApiResult.success();
}
...
}
2. 忽略特定接口的防抖
如果某些接口不需要防抖处理,可以使用@DebounceIgnore
注解来忽略。以下是Java代码示例:
java
public class xxController {
...
@DebounceIgnore // 忽略该接口的防抖处理
public ApiResult create(@RequestBody xxDTO dto) {
...
return ApiResult.success();
}
...
}
触发效果
假设在“教师编辑”功能中,用户在Form表单中快速连续点击确认按钮,防抖机制的效果如下:
- 首次点击:系统立即响应用户的点击,触发相应的接口请求。
- 连续点击:若用户在设定的防抖时间(例如500毫秒)内重复点击确认按钮,系统将显示提示信息:“您的请求过于频繁,请稍后再试!”,并在此期间暂停处理额外的请求。系统会继续等待,直到防抖时间结束后,才会触发下一次有效的请求。