我正在使用knockout.repeat绘制带有以下数据的动态列数组:
var columns = ko.observableArray([
new Column(1),
new Column(2),
new Column(3),
new Column(4),
new Column(5)
});
var array = ko.observableArray([1..95]);
使用敲除映射以下列方式分配数据:
mappingConfig = {
create: function (options) {
return new Row(options.data);
}
};
ko.mapping.fromJS(data, mappingCOnfig, array);
以下列方式:
<div data-bind="repeat: {foreach: array, item: '$row'}">
<div data-bind="repeat: {foreach: column, item: '$col'}">
<input data-bind="value: $row()[$col().Name]"/>
</div>
</div>
我遇到的问题是,渲染包含6列的95行需要几乎 30秒。
Chrome时间轴:
更新:我受到压力,所以我在reactjs中重新编写了表格,这解决了很多问题并且只渲染了1.5秒。