搜索插件、代码仓与 APP 分类

插件详情v2.0.1

throttling

包含带有监听器的异步辅助类,用于节流和防抖

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
1.8万
喜欢数
44
Pub 分数
140

安装插件

flutter pub add throttling

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

该限流包为 Dart 应用程序提供了异步辅助类,用于实现限流和防抖。它使开发者能够控制函数的执行速率,防止在快速事件(如用户输入或网络请求)期间发生过多调用。内置的监听器支持简化了跨平台延迟或限速操作的管理。非常适合优化响应式 UI 和实时数据处理中的性能。

适合场景

  • 限制用户输入事件的速率
  • 优化网络请求频率
  • 提高UI响应性
  • 管理实时数据更新
  • 减少冗余计算
  • 处理滚动或调整大小事件

主要特点

  • 节流和防抖工具
  • 与监听器兼容异步
  • 跨平台支持
  • 用于限流的简单 API
  • 内置的取消处理
  • 同时支持同步和异步函数

适合对象

  • 开发响应式 Flutter 应用的开发者
  • 需要事件速率控制的团队
  • 频繁用户交互的应用程序
  • 实时数据处理场景
  • 性能关键的应用程序

使用建议

  • 需要理解异步流程
  • 如果阈值过于严格,可能会增加延迟
  • 不适合立即执行的需求
  • 必须管理监听器以避免内存泄漏
  • 最好与状态管理模式一起使用

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

THROTTLING DART LIBRARY

contain "throttling" and "debouncing" classes

Actions Status Coverage Pub License: MIT Effective Dart Star on Github

Using

See a demonstration of use at dartpad.dev

Throttling example
final thr = Throttling<void>(duration: const Duration(milliseconds: 200));
thr.throttle(() {print(' * 1');}); // print ' * 1'
await Future<void>.delayed(const Duration(milliseconds: 100));
thr.throttle(() {print(' * 2');});
await Future<void>.delayed(const Duration(milliseconds: 100));
thr.throttle(() {print(' * 3');}); // print ' * 3'
thr.close();
Debouncing example
final deb = Debouncing<void>(duration: const Duration(milliseconds: 200));
deb.debounce(() {print(' * 1');});
await Future<void>.delayed(const Duration(milliseconds: 100));
deb.debounce(() {print(' * 2');});
await Future<void>.delayed(const Duration(milliseconds: 100));
deb.debounce(() {print(' * 3');});
await Future<void>.delayed(const Duration(milliseconds: 200));
// print ' * 3'
deb.close();

所属分类

源码仓库

使用此插件的项目