当前位置: 首页 > news >正文

网站建设策划怎么谈西湖区网站建设

网站建设策划怎么谈,西湖区网站建设,区域销售网站什么做,网络运维工程师证书怎么考在前端项目开发中,点击事件的防抖是一个永远无法错开的点,特别是针对一些复杂的业务场景,如果不做好防抖操作,就会导致页面或功能触发多次,引发异常或闪退。 在Flutter中可以通过扩展函数的特性 对Function增加全局扩…

在前端项目开发中,点击事件的防抖是一个永远无法错开的点,特别是针对一些复杂的业务场景,如果不做好防抖操作,就会导致页面或功能触发多次,引发异常或闪退。

在Flutter中可以通过扩展函数的特性 对Function增加全局扩展函数,实现防抖效果。

具体如下:

extension FunctionExt on Function {VoidCallback throttle() {return FunctionProxy(this).throttle;}// 立即执行目标操作,同时给出一个延迟的时间,// 在该时间范围内如果再次触发了事件,该次事件会被忽略,直到超过该时间范围后触发事件才会被处理。VoidCallback throttleWithTimeout({int? timeout}) {return FunctionProxy(this, timeout: timeout).throttleWithTimeout;}// 在触发事件时,不立即执行目标操作,而是给出一个延迟的时间,// 在该时间范围内如果再次触发了事件,则重置延迟时间,直到延迟时间结束才会执行目标操作。VoidCallback debounce({int? timeout}) {return FunctionProxy(this, timeout: timeout).debounce;}
}class FunctionProxy {static final Map<String, bool> _funcThrottle = {};static final Map<String, Timer> _funcDebounce = {};final Function? target;final int timeout;FunctionProxy(this.target, {int? timeout}) : timeout = timeout ?? 500;// 节流(默认延迟)void throttle() async {String key = hashCode.toString();bool enable = _funcThrottle[key] ?? true;if (enable) {_funcThrottle[key] = false;try {await target?.call();} catch (e) {rethrow;} finally {_funcThrottle.remove(key);}}}// 节流(自定义延迟)void throttleWithTimeout() {String key = hashCode.toString();bool enable = _funcThrottle[key] ?? true;if (enable) {_funcThrottle[key] = false;Timer(Duration(milliseconds: timeout), () {_funcThrottle.remove(key);});target?.call();}}//延迟顺序执行的防抖void debounce() {String key = hashCode.toString();Timer? timer = _funcDebounce[key];timer?.cancel();timer = Timer(Duration(milliseconds: timeout), () {Timer? t = _funcDebounce.remove(key);t?.cancel();target?.call();});_funcDebounce[key] = timer;}
}

在使用的地方

              onBackPressed: () {}.throttleWithTimeout(timeout: 500)

这种方案只是提供了一种防抖的实现,当然也可以自定义通用的Button,通过点击事件触发的时间自行判断处理。

http://www.yayakq.cn/news/109958/

相关文章:

  • 对网站建设的认识网站cps后台怎么做
  • 网站开发合同是否要交印花税wordpress备份如何恢复
  • 广东网站建设服务商产品外观设计收费标准
  • 行业网站策划做淘宝客建网站的好处是什么
  • 网站网警备案流程在哪个网站可以搜索做凉菜视频
  • 学习做网站大概多久时间wordpress+python导入
  • 三拼域名做网站做网站要买什么服务器
  • 徐闻手机网站建设公司医院网站和微信公众号建设方案
  • 吉林省吉林市简介北京seo全网营销
  • 十三五专业建设规划怎么做网站搜索引擎优化
  • 平面设计接单网站有哪些三国类网页游戏前十名
  • 做网站需要报备什么网站内容优化方案
  • 网站建站代码wordpress在线邮箱验证
  • 南通市网站深圳网站优化
  • 淮安网站建设公司中国建筑人才网是什么网站
  • 哪些平台制作网站网站首页用什么字体好
  • 贴吧怎么做网站视频网站建设的行业动态
  • 查询网站所有死链接江山网站制作
  • 上海网络推广部保定百度推广优化排名
  • 一个wordpress多个网站找建筑网官网
  • 青白江区城乡和建设局网站找电商平台帮我卖产品
  • PHP MYSQL网站开发全程实网站建设中的形象满意指的是销售
  • 网站开发逻辑图wordpress调用面包屑
  • 免费网站申请域名超市设计网站
  • 培训营销型网站建设电子商务网站建设与管理 总结
  • 睿艺美开封做网站网站后台编辑器上传不了图片
  • 网站主页特效欣赏深圳前十设计公司
  • 湖南兼职网站建设华为网站建设
  • dw网站模板免费数字营销包括哪六种方式
  • 建设婚恋网站基本功能有哪些怎样用代码建设一个网站