在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 输入框实时搜索性能优化相关推荐

  1. 输入框实时搜索优化,减少请求次数、取消无用请求

    背景 用户在输入框输入内容的同时进行搜索,针对搜索实时搜索结果进行展示 问题 如果不做处理,只监听输入框的input事件或者键盘按下弹起事件,实时对文本内容进行搜索,往往因为网络波动问题可能会造成结果 ...

  2. input输入框实时搜索匹配

    实时搜索功能 最终效果如下:当是英文输入或数字时,每次输入都会触发,但当是中文输入法时,只有在选中文字后才会触发,类似百度搜索 (以react为例) <input value={searchVa ...

  3. Flutter性能优化—UI

    耗时三个月总结全网大部分Flutter性能分析的方法论,并且结合实战验证效果和自己开发经验,保姆式的一步步带你了解优化中的细节和注意点,希望能给你带来一些收获 原理 Flutter的架构 Framew ...

  4. 2019 下半年 Flutter 实现的性能优化 | 英雄榜

    作者 / Yuqian Li & Shams Zakhour 高性能是 Flutter 的关键特性之一.我们希望通过本文着重分享在 2019 年下半年由整个 Flutter 社群实现的性能优化 ...

  5. 机票垂直搜索引擎的性能优化

    机票垂直搜索引擎的性能优化 原文:机票垂直搜索引擎的性能优化 一.行业背景与垂直搜索 我们先了解一下机票的行业背景,下图是由中航信统计的数据,蓝色的曲线代表平均每公里的票价,红色曲线指的是客运量.从2 ...

  6. 机票垂直搜索引擎之性能优化

    行业背景与垂直搜索 从2011年到2016年,无论国内,还是国际,整体趋势都是机票价格便宜了,坐飞机的人也越来越多.特别是国际机票,这五年里机票价格下降了30%,客运量增长了140%. 乘客越来越多, ...

  7. 垂直搜索引擎的性能优化@机票行业

    一.行业背景与垂直搜索 我们先了解一下机票的行业背景,下图是由中航信统计的数据,蓝色的曲线代表平均每公里的票价,红色曲线指的是客运量.从2011年到2016年,无论是国内.港澳台还是国际,整体趋势都是 ...

  8. ListView流畅度翻倍!Flutter卡顿分析和优化方案

    最近因为在做Flutter中相关的性能优化,在收集很多性能数据之后发现ListView组件在一些场景下(例如加载更多)容易引起页面卡顿,看到了闲鱼的Flutter 高性能.多功能的全场景滚动容器.但奈 ...

  9. 程序员业务,微信全文搜索技术优化

    一.iOS微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式.倒排索引也称为反向索引,是指对输入的内容中的每个Token建立一个索引,索引中保存了这个Token在内容中的具体位置.全 ...

最新文章

  1. Java引入依赖aar_java – 如何将JAR依赖项包含到AAR库中
  2. No.6 PHP的基本配置与优化
  3. 腾讯医疗AI新突破:提出器官神经网络,全自动辅助头颈放疗规划 | 论文
  4. JavaScript强化教程——对象的值传递和引用传递
  5. 自动设置图片的序号_word表格技巧:如何在表格中填充序号并能自动更新
  6. vue双向数据绑定原理分析--Mr.Ember
  7. 线程基础知识系列(三)线程的同步
  8. WCF中的ServiceHost初始化两种方式(宿主)
  9. “李国庆午餐1小时”12.94万成交!同时对家暴非常自责
  10. 获取mysql系统时间
  11. 九宫格游戏(java实现)
  12. 基于R语言的聚类(谱聚类)
  13. 10015---Maven笔记
  14. 半价了:阿里云挑起价格战 您用得满意,请点赞
  15. (第二章)HTML基本标记
  16. 【乐通达】微信永不缺席!连发三大重磅更新,视频号终于成了视频号
  17. Sentinel流量防控卫兵
  18. word转excel
  19. vue2中vuex状态管理的理解(菜单面包板)
  20. myeclipse Snippets的配置

热门文章

  1. c语言有关字符的操作,C语言字符操作总结大全(超详细).doc
  2. 【论文|复现]Vertebra-Focused Landmark Detection For Scoliosis Assessment
  3. (python源码,详细注解 )多目标粒子群算法 mopso
  4. 用户列表组合条件查找
  5. (蒼ざめた月の光)苍青色的月光(moonlight)Ture End--真正结局(大团圆结局)攻略心得
  6. 施瓦茨不等式(协方差和方差的关系)
  7. 如何加声调口诀_小学拼音声调的口诀是什么??
  8. C++ friend 用法总结
  9. 优化详情页怎么做|百誉纳成
  10. 如何批量打开一组网页?