我有一个绑定到远程传输的Kendo UI自动完成功能,我需要调整它的工作方式并且空白。
目前,我在服务器上执行了大量搜索,并将结果集成到JSON响应中,然后将其返回到自动完成的数据源。问题是这可能需要很长时间,而且我们的应用程序是时间敏感的。
我们已确定哪些搜索最重要,并发现1次搜索占所选结果的95%。但是,我仍然需要提供其他搜索的数据。我正在考虑在服务器上启动单独的数据请求,并在返回时添加自动完成功能。我们的主搜索返回速度非常快,并且将是添加到列表中的第一个项目。然后当其他搜索返回时,我希望它们动态添加到列表中。
我们的应用程序使用knockout.js并且我考虑过将数据源作为视图模型的一部分,但是从环顾四周看,Kendo不会根据对您的observable的更改进行更新。
我目前很难过,欢迎任何建议。
编辑:
我一直在尝试并使用以下数据源模拟了我想要的东西:
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: window.performLookupUrl,
data: function () {
return {
param1: $("#Input").val()
};
}
},
parameterMap: function (options) {
return {
param1: options.param1
};
}
},
serverFiltering: true,
serverPaging: true,
requestEnd: function (e) {
if (e.type == "read") {
window.setTimeout(function() {
dataSource.add({ Name: "testin1234", Id: "X1234" })
}, 2000);
}
}
});
如果第一次搜索返回结果,则在2秒后,新项目会弹出列表。但是,如果第一次搜索失败,则没有任何反应。使用(滥用??)这样的请求是否合适?我最终的目标是从这个功能开始其余的搜索。