snu.throttle()
节流
节流执行:在指定的时间间隔 wait 内,无论函数被触发多少次,只执行一次(以首次触发计时,间隔到期后执行)。相同 id 复用同一套节流计时。wait <= 0 时直接立即执行。
兼容性
| Web | Android |
|---|---|
| √ | √ |
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| fun | Function | 是 | - | 需节流执行的函数(无参数) |
| wait | Number | 是 | - | 节流时间间隔(毫秒) |
| id | String | 否 | 'default' | 分组标识,不同 id 互不干扰 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| Void | 否 | 无返回值 |
示例
typescript
snu.throttle(() => {
// 高频触发时在此间隔内只执行一次
}, 200, 'scrollHandler')snu.debounce()
防抖
防抖执行:当函数被高频触发时,仅在最后一次触发后经过 wait 毫秒才执行;期间再次触发会重置计时。相同 id 复用同一套防抖计时。wait <= 0 时立即执行。
兼容性
| Web | Android |
|---|---|
| √ | √ |
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| fun | Function | 是 | - | 需防抖执行的函数(无参数) |
| wait | Number | 是 | - | 防抖延迟时间(毫秒) |
| id | String | 否 | 'default' | 分组标识,不同 id 互不干扰 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| Void | 否 | 无返回值 |
示例
typescript
snu.debounce(() => {
// 输入停止 300ms 后执行
}, 300)snu.clamp()
数值限制
将数值限制在指定的最小值和最大值之间。max 不传(null)时,仅保证不小于 min。
兼容性
| Web | Android |
|---|---|
| √ | √ |
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| value | Number | 是 | - | 待限制的数值 |
| min | Number | 是 | - | 最小值 |
| max | Number/null | 否 | null | 最大值;为 null 时不限制上限 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| Number | 是 | 限制在 [min, max](或无上限 ≥ min)内的数值 |
示例
typescript
let v = snu.clamp(150, 0, 100) // 100
let w = snu.clamp(-5, 0) // 0