提取与输入到搜索栏中的字符匹配并立即使用react的项目的秘诀是什么?例如,如果我在搜索栏中输入一个字母“W”,则该短语内任何字符位置包含字母“W”的所有短语都会立即返回。
因此,如果一个包含 20,000 个短语的数据库包含 500 个带有字母“W”的短语,它们会在用户输入第一个字符后立即出现。然后当输入额外的字符时,列表会自动变短。
我可以从 iPhone 将查询发送到 SQL 服务器并获得这种类型的响应,但是,无论我们尝试什么并听取其他用户的建议,当将数据库本地存储在本地时,我们仍然无法获得良好的响应时间苹果手机。
我知道这种性能是可用的,因为还有许多其他应用程序可以在您开始输入时立即显示结果。
请注意,这与索引每个短语中的所有单词不同,因为这只会在单词以输入的字符开头的位置进行匹配。在这种情况下,我们正在查找单词中的字符。
最佳答案
我认为异步结果过滤就是答案。不是每次用户键入新字符时都更新搜索结果,而是在键入第一个字符时将 db 查询放在后台线程上。如果在查询完成之前输入了新字符,则取消旧查询并开始新查询。最后,您将达到用户停止输入足够长的时间以使查询返回的点。这样,查询本身永远不会阻止用户的输入。
我相信 UISearchDisplayController 类提供了这种类型的异步搜索,尽管您是想使用该类还是只是采用它的异步设计模式取决于您。
关于iphone - 核心数据查询慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2158923/