Flutter 输入框实时搜索性能优化
在App开发过程中,搜索功能是必不可少的。一般对于搜索功能,要么是输入一段文字后自己手动点击搜索按钮进行搜索;要么是实时的搜索。如果输入框中每一个字符的改变都要去触发网络请求的话,会浪费用户的流量,增大服务器的负载,并且使页面比较卡顿。这显然是不可取的。举一个很简单的例子,用户想要搜索 "ABC" ,如果直接监听文本变化,会向服务器发送3次请求。显然这会造成差的用户体验并浪费网路资源。
所以我们可以做一个延迟加载、当文本输入变化超过500ms时进行功能搜索:
//快速搜索static searchDelay(Function doSomething, {durationTime = 500}) {timer?.cancel();timer = new Timer(Duration(milliseconds: durationTime), () {doSomething?.call();timer = null;});}
可以在输入框基类进行封装:
onChanged: (value) {if (!_textEditingController.value.composing.isValid) {setState(() {inputKeywords = _textEditingController.text;});if (widget.onChanged != null) {Utils.searchDelay(() {widget.onChanged(inputKeywords);});}}},
这样便能达到文本搜索优化的效果。
Flutter 输入框实时搜索性能优化相关推荐
- 输入框实时搜索优化,减少请求次数、取消无用请求
背景 用户在输入框输入内容的同时进行搜索,针对搜索实时搜索结果进行展示 问题 如果不做处理,只监听输入框的input事件或者键盘按下弹起事件,实时对文本内容进行搜索,往往因为网络波动问题可能会造成结果 ...
- input输入框实时搜索匹配
实时搜索功能 最终效果如下:当是英文输入或数字时,每次输入都会触发,但当是中文输入法时,只有在选中文字后才会触发,类似百度搜索 (以react为例) <input value={searchVa ...
- Flutter性能优化—UI
耗时三个月总结全网大部分Flutter性能分析的方法论,并且结合实战验证效果和自己开发经验,保姆式的一步步带你了解优化中的细节和注意点,希望能给你带来一些收获 原理 Flutter的架构 Framew ...
- 2019 下半年 Flutter 实现的性能优化 | 英雄榜
作者 / Yuqian Li & Shams Zakhour 高性能是 Flutter 的关键特性之一.我们希望通过本文着重分享在 2019 年下半年由整个 Flutter 社群实现的性能优化 ...
- 机票垂直搜索引擎的性能优化
机票垂直搜索引擎的性能优化 原文:机票垂直搜索引擎的性能优化 一.行业背景与垂直搜索 我们先了解一下机票的行业背景,下图是由中航信统计的数据,蓝色的曲线代表平均每公里的票价,红色曲线指的是客运量.从2 ...
- 机票垂直搜索引擎之性能优化
行业背景与垂直搜索 从2011年到2016年,无论国内,还是国际,整体趋势都是机票价格便宜了,坐飞机的人也越来越多.特别是国际机票,这五年里机票价格下降了30%,客运量增长了140%. 乘客越来越多, ...
- 垂直搜索引擎的性能优化@机票行业
一.行业背景与垂直搜索 我们先了解一下机票的行业背景,下图是由中航信统计的数据,蓝色的曲线代表平均每公里的票价,红色曲线指的是客运量.从2011年到2016年,无论是国内.港澳台还是国际,整体趋势都是 ...
- ListView流畅度翻倍!Flutter卡顿分析和优化方案
最近因为在做Flutter中相关的性能优化,在收集很多性能数据之后发现ListView组件在一些场景下(例如加载更多)容易引起页面卡顿,看到了闲鱼的Flutter 高性能.多功能的全场景滚动容器.但奈 ...
- 程序员业务,微信全文搜索技术优化
一.iOS微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式.倒排索引也称为反向索引,是指对输入的内容中的每个Token建立一个索引,索引中保存了这个Token在内容中的具体位置.全 ...
最新文章
- Java引入依赖aar_java – 如何将JAR依赖项包含到AAR库中
- No.6 PHP的基本配置与优化
- 腾讯医疗AI新突破:提出器官神经网络,全自动辅助头颈放疗规划 | 论文
- JavaScript强化教程——对象的值传递和引用传递
- 自动设置图片的序号_word表格技巧:如何在表格中填充序号并能自动更新
- vue双向数据绑定原理分析--Mr.Ember
- 线程基础知识系列(三)线程的同步
- WCF中的ServiceHost初始化两种方式(宿主)
- “李国庆午餐1小时”12.94万成交!同时对家暴非常自责
- 获取mysql系统时间
- 九宫格游戏(java实现)
- 基于R语言的聚类(谱聚类)
- 10015---Maven笔记
- 半价了:阿里云挑起价格战 您用得满意,请点赞
- (第二章)HTML基本标记
- 【乐通达】微信永不缺席!连发三大重磅更新,视频号终于成了视频号
- Sentinel流量防控卫兵
- word转excel
- vue2中vuex状态管理的理解(菜单面包板)
- myeclipse Snippets的配置
热门文章
- c语言有关字符的操作,C语言字符操作总结大全(超详细).doc
- 【论文|复现]Vertebra-Focused Landmark Detection For Scoliosis Assessment
- (python源码,详细注解 )多目标粒子群算法 mopso
- 用户列表组合条件查找
- (蒼ざめた月の光)苍青色的月光(moonlight)Ture End--真正结局(大团圆结局)攻略心得
- 施瓦茨不等式(协方差和方差的关系)
- 如何加声调口诀_小学拼音声调的口诀是什么??
- C++ friend 用法总结
- 优化详情页怎么做|百誉纳成
- 如何批量打开一组网页?