在TextChanged事件上等待几毫秒是否值得?

我有一个在移动设备上过滤客户操作的文本框。 我想知道是否我应该等待几毫秒之前启动我的代码,当用户inputless于3个字符,只有执行代码,如果文本是长或等于3个字符。

执行的代码需要更长的时间(SQL像一个更大的数据库上的语法),用户看到在列表视图上的挂起。

你怎么看?

Solutions Collecting From Web of "在TextChanged事件上等待几毫秒是否值得?"

延迟对文本更改事件的SQL查询确实是一个好主意。 我们在整个Android中都使用这种技术。 我们也一直确保取消任何以前的查询。 例如,如果用户键入“ab”,并且在用户键入“a”之后发布消息以开始查询,则当用户键入“b”时,我们取消该消息。

如果用户在启动代码时看到挂起 ,则不会立即启动。

假设查询根据用户的input即时执行,我会等待,直到用户键入足够的字符来处理较轻的查询,并且不会停止用户界面。 特别是使用%LIKE%语法,需要处理的char越less,意味着用户查询量越大,等待时间越长。

我会尝试使用相同的方法作为Android本地应用程序,因为源代码是可用的。 例如联系人 。

检查他们在search联系人时做了什么。

有些应用程序还会在焦点移动到另一个input字段时执行inputvalidation,并且在编辑时不检查input。 我不确定这是不是一件好事(我觉得有点混乱),但这绝对是解决问题的一种方法。

在iPhone上,如果您在开始search后发现用户input的时间滞后,则可能需要将查询操作移至后台线程,并且可以按照RG所述的方法取消旧search。

对于前几个字符稍微延迟是有意义的,但是除此之外没有任何延迟 – 在大约三到四个字符之后,可能有足够的字符开始返回有意义的结果。