在Knockout JS中搜索从DB加载数据的项目

search items that load data from DB in Knockout JS

本文关键字:加载 数据 项目 DB Knockout JS 搜索      更新时间:2023-09-26

在我的应用程序中,我有一个从DB加载数据的observableArray。这个observableArray填充了DB中的前25个项目,从向下滚动开始,它加载了另外25个项目并继续

现在,我想实现搜索,它应该显示从DB中搜索整个数据的结果,而不仅仅是从显示的25个项目中搜索。

我试图通过点击搜索按钮将整个搜索文本发送到数据库来获得搜索结果,但数据库中有很多数据,加载数据需要很长时间。

请让我知道如何在毫秒内从DB获得所需的结果。提前感谢。

要使用Knockout获得性能良好的搜索,您应该使用速率限制器扩展绑定到输入的searchText可观测值

this.searchText = ko.observable('').extend({ rateLimit: { timeout: 500, method: "notifyWhenChangesStop" } })

在输入保持500ms不变后(即,当用户停止键入时),这将呼叫任何订户。您还可以使用默认方法notifyAtFixedRate至少每X秒调用一次API。

最重要的是,一把小提琴!

注意:话虽如此,如果您的查询耗时40秒,那么这听起来像是数据库查询的问题。这可能需要这么长的时间,因为服务器上充斥着请求,但这似乎仍然非常慢。这是我们使用的策略,它非常有效,但我们的API响应时间<200ms。