Flutter 输入框实时搜索性能优化
Posted 一支向前
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 输入框实时搜索性能优化的主要内容,如果未能解决你的问题,请参考以下文章
实时渲染不是梦:通过共享内存优化Flutter外接纹理的渲染性能