我正在使用knockout映射插件将来自微风查询的数据映射到数组。
以下函数每3秒刷新一次数组。从微风查询中接收数据后:
function refreshArray(itemsArray, predicate, fields, entityName, entityKey) {
if (predicate) {
return ds.getProjection(fields, entityName, predicate).then(function (data) {
ko.mapping.fromJS(data.results, {
create: function (options) {
options.data["isSelected"] = ko.observable(false);
return ko.mapping.fromJS(options.data, {});
}
, key: function (data) {
// Bisogna capire come gestirlo nel caso di una chiave composta.
return ko.utils.unwrapObservable(data[entityKey[0].name]);
}
}, itemsArray);
})
}
else itemsArray([]);
};
使用大数据集导致在映射期间执行小任务(在4K记录上大约3秒)。
你有什么建议吗? (我是否必须使映射异步?我可以使用其他插件,如knockout.viewmodel吗?)