0

我已经实现了一个添加了 searchBar 的 tableView。当用户开始在搜索栏中输入搜索关键字时,我想调用服务。我知道我可以在将调用该服务的change事件侦听器中调用该服务。

我知道,对于搜索栏中的每一次更改,调用服务都是不好的。那么当搜索结果来自服务调用时使用搜索栏的有效方法是什么,或者我们可以做些什么来提高搜索效率。

例如:苹果应用商店的搜索功能

4

1 回答 1

0

我为我的一个测试项目做了这样的事情。在尝试查找之前,我会检查我的更改事件是否输入了至少 3 个字符。我不知道我为什么选择 3,但过滤我的数据似乎有相当数量的字符。我还会设置一个标志,表明网络请求正在进行中。因此,如果他们输入了 3 个字符,如果没有正在进行的查找,您可以开始搜索。如果有正在进行的网络请求,您可以设置一个等待间隔以继续检查请求是否返回并在返回时启动其他请求。我会发回一些简短的物品清单,对我来说是 25 个,这样我的桌子就显得很快了。

虽然我没有这样做,但您可以跟踪输入字符之间的时间间隔,以确保用户完成输入。为了获得最佳间隔,您需要尝试对普通用户来说是合理的。从典型的非高级用户那里获得一些反馈。

我可以看到一个潜在的问题,即您正在查找,但用户仍在键入。您可能需要跟踪这些字符更新,并可能开始额外搜索更新的字符串。您甚至可以将您当时发送的字符搜索字符串与输入框中的当前字符进行比较,然后选择放弃您已经收到的查找项列表,然后再进行一次搜索。

您可能希望显示您确实收到的项目列表,以便用户知道应用程序正在运行,但立即自动发送另一个查找项目的请求。如果您不时在表格中显示某些内容,用户最终可能会开始敲击键并认为应用程序没有响应。

于 2012-10-17T17:46:42.960 回答