Optimization foreach大选择减慢knockoutjs数据绑定
我的问题 我有一个表,它加载了相同的select,对于检索到的每个数据项都有数百个选项。我检索select的数据,并在数据绑定之前将其存储在JavaScript变量中。问题在于,由于选项太多,这些选项需要10秒以上的时间来填充包含200多个项目的数据集 我做了什么来确定这是问题所在 我发现通过删除选择,数据绑定运行得非常快,因此我确信这是我的问题 我的问题Optimization foreach大选择减慢knockoutjs数据绑定,optimization,knockout.js,Optimization,Knockout.js,我的问题 我有一个表,它加载了相同的select,对于检索到的每个数据项都有数百个选项。我检索select的数据,并在数据绑定之前将其存储在JavaScript变量中。问题在于,由于选项太多,这些选项需要10秒以上的时间来填充包含200多个项目的数据集 我做了什么来确定这是问题所在 我发现通过删除选择,数据绑定运行得非常快,因此我确信这是我的问题 我的问题 <table id="reportList"> <tbody data-bind='forea
<table id="reportList">
<tbody data-bind='foreach: reportList'>
<tr>
<td>
<select class="itemSelect" data-bind="options: $root.selectItemIDOptions,
value:ItemID, optionsValue: 'ItemID',
optionsText: 'SupplierItemID',
optionsCaption: 'Select Item'" />
</td>
<td data-bind="text: Description"></td>
</tr>
我还能做些什么来加快这个过程
我的实施
<table id="reportList">
<tbody data-bind='foreach: reportList'>
<tr>
<td>
<select class="itemSelect" data-bind="options: $root.selectItemIDOptions,
value:ItemID, optionsValue: 'ItemID',
optionsText: 'SupplierItemID',
optionsCaption: 'Select Item'" />
</td>
<td data-bind="text: Description"></td>
</tr>
我的建议是不要尝试修复或调试大型数据集的敲除,而是重构您发送的数据 如果您在第一次数据调用中为每条记录获取10个字段(而不是100个),然后为用户提供一个“获取详细信息”链接,以便逐行检索其他90个字段,该怎么办 这将非常快地加载原始列表,随后每次调用更多详细信息也将非常快。类似问题如下:
function ReportRow(ItemID, Description) {
var self = this;
self.ItemID = ko.observable(ItemID);
self.Description = ko.observable(Description);
}